bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Pacify GCC -Wsign-compare


From: Paul Eggert
Subject: [PATCH] Pacify GCC -Wsign-compare
Date: Tue, 20 Sep 2022 14:19:46 -0700

* src/arscan.c (ar_scan): Pacify GCC 12.2.1 -Wsign-compare by copying
an unsigned value into a signed variable before comparing it.
Make sure it is in range before copying.
---
 src/arscan.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/arscan.c b/src/arscan.c
index 83377910..f22d21aa 100644
--- a/src/arscan.c
+++ b/src/arscan.c
@@ -714,11 +714,13 @@ ar_scan (const char *archive, ar_member_func_t function, 
const void *arg)
                    && name[2] == '/')
             {
               const char* err;
-              unsigned int name_len = make_toui (name + 3, &err);
+              unsigned int ui = make_toui (name + 3, &err);
+              int name_len;
 
-              if (err || name_len == 0 || name_len > PATH_MAX)
+              if (err || ui == 0 || ui >= MIN (PATH_MAX, INT_MAX))
                 goto invalid;
 
+              name_len = ui;
               name = alloca (name_len + 1);
               nread = readbuf (desc, name, name_len);
               if (nread != name_len)
-- 
2.37.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]