These two fixes cast the resultant pointer calculation to a uintptr_t. This type is unsigned, (matching size_t) but specifically set to store pointers.
I dislike simply casting to remove warnings, but in this instance I think this may be reasonable. The aim of both of these cases is to loop for the length of the buffer, so one alternative could be to extract the calculation. If this is preferred by the developers, we can drop this patch. Signed-off-by: Kieran Bingham <kieranbing...@gmail.com> --- src/process.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/process.c b/src/process.c index 86864f5..40c81f8 100644 --- a/src/process.c +++ b/src/process.c @@ -4827,7 +4827,7 @@ static void ColonFin(char *buf, size_t len, void *data) int showmessage = 0; char *s = buf; - while (*s && s - buf < len) + while (*s && (uintptr_t)(s - buf) < len) if (*s++ == ' ') return; @@ -4848,7 +4848,7 @@ static void ColonFin(char *buf, size_t len, void *data) s = mbuf; for (l = m - 1; l >= 0 && strncmp(buf, comms[l].name, len) == 0; l--) ; for (m = ++l; - m <= r && strncmp(buf, comms[m].name, len) == 0 && s - mbuf < sizeof(mbuf); m++) + m <= r && strncmp(buf, comms[m].name, len) == 0 && (uintptr_t)(s - mbuf) < sizeof(mbuf); m++) s += snprintf(s, sizeof(mbuf) - (s - mbuf), " %s", comms[m].name); if (l < m - 1) { if (showmessage) -- 2.1.4