[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
- [PATCH] Pacify GCC -Wsign-compare,
Paul Eggert <=