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


Reply via email to