slcanpty: silence warning for signed index for the buf array

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 <socketcan@hartkopp.net>
pull/498/head
Oliver Hartkopp 2024-02-14 21:03:11 +01:00
parent a9260eab76
commit 2643d28a57
1 changed files with 8 additions and 7 deletions

View File

@ -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;