From 2643d28a57ce8637ca31ef4af91873c9f91bc532 Mon Sep 17 00:00:00 2001 From: Oliver Hartkopp Date: Wed, 14 Feb 2024 21:03:11 +0100 Subject: [PATCH] slcanpty: silence warning for signed index for the buf array MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- slcanpty.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/slcanpty.c b/slcanpty.c index fc86d4f8..92a930df 100644 --- a/slcanpty.c +++ b/slcanpty.c @@ -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;