Hi,
clang complains about a quite some signed compares in pax. This fixes
a few of them, all of the form
if (var < sizeof(...))
where var is an int.
Here a conversion of the int value to unsigned takes place, due to
the conversion rules. This causes negative values of var not to be caught.
By casting the sizeof value to int that wil happen. No more warning
and better invalid value checking....
OK?
-Otto
Index: cpio.c
===================================================================
RCS file: /cvs/src/bin/pax/cpio.c,v
retrieving revision 1.30
diff -u -p -r1.30 cpio.c
--- cpio.c 26 Aug 2016 04:11:16 -0000 1.30
+++ cpio.c 6 Sep 2017 14:18:58 -0000
@@ -251,7 +251,7 @@ rd_ln_nm(ARCHD *arcn)
int
cpio_id(char *blk, int size)
{
- if ((size < sizeof(HD_CPIO)) ||
+ if ((size < (int)sizeof(HD_CPIO)) ||
(strncmp(blk, AMAGIC, sizeof(AMAGIC) - 1) != 0))
return(-1);
return(0);
@@ -488,7 +488,7 @@ cpio_wr(ARCHD *arcn)
int
vcpio_id(char *blk, int size)
{
- if ((size < sizeof(HD_VCPIO)) ||
+ if ((size < (int)sizeof(HD_VCPIO)) ||
(strncmp(blk, AVMAGIC, sizeof(AVMAGIC) - 1) != 0))
return(-1);
return(0);
@@ -505,7 +505,7 @@ vcpio_id(char *blk, int size)
int
crc_id(char *blk, int size)
{
- if ((size < sizeof(HD_VCPIO)) ||
+ if ((size < (int)sizeof(HD_VCPIO)) ||
(strncmp(blk, AVCMAGIC, sizeof(AVCMAGIC) - 1) != 0))
return(-1);
return(0);
@@ -799,7 +799,7 @@ vcpio_wr(ARCHD *arcn)
int
bcpio_id(char *blk, int size)
{
- if (size < sizeof(HD_BCPIO))
+ if (size < (int)sizeof(HD_BCPIO))
return(-1);
/*