Skip to content

Commit

Permalink
slcanpty: silence warning for signed index for the buf array
Browse files Browse the repository at this point in the history
slcanpty.c: In function ‘pty2can’:
slcanpty.c:105:21: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  105 |         buf[nbytes] = 0;
      |         ~~~~~~~~~~~~^~~
slcanpty.c:58:21: note: at offset [-2147483647, -1] into destination object ‘buf’ of size 200
   58 |         static char buf[200];
      |                     ^~~

Signed-off-by: Oliver Hartkopp <[email protected]>
  • Loading branch information
hartkopp committed Feb 14, 2024
1 parent a9260ea commit 2643d28
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions slcanpty.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,24 +53,25 @@
int pty2can(int pty, int socket, struct can_filter *fi,
int *is_open, int *tstamp)
{
int nbytes;
unsigned int nbytes;
char cmd;
static char buf[200];
char replybuf[10]; /* for answers to received commands */
int ptr;
struct can_frame frame;
int tmp, i;
static int rxoffset = 0; /* points to the end of an received incomplete SLCAN message */
int ret, tmp, i;
static unsigned int rxoffset = 0; /* points to the end of an received incomplete SLCAN message */

nbytes = read(pty, &buf[rxoffset], sizeof(buf)-rxoffset-1);
if (nbytes <= 0) {
/* nbytes == 0 : no error but pty descriptor has been closed */
if (nbytes < 0)
ret = read(pty, &buf[rxoffset], sizeof(buf)-rxoffset-1);
if (ret <= 0) {
/* ret == 0 : no error but pty descriptor has been closed */
if (ret < 0)
perror("read pty");

return 1;
}

nbytes = ret;
/* reset incomplete message offset */
nbytes += rxoffset;
rxoffset = 0;
Expand Down

0 comments on commit 2643d28

Please sign in to comment.