libextractor

GNU libextractor
Log | Files | Refs | Submodules | README | LICENSE

commit dbb0fdd59e3182dfae38f7a620384d4ae074e5a8
parent f3397e43664392aa0f116f5de422b74fb820e3a3
Author: Christian Grothoff <christian@grothoff.org>
Date:   Wed, 29 Jul 2026 11:06:50 +0200

fix integer type issues

Diffstat:
Msrc/plugins/pack.c | 88++++++++++++++++++++++++++++++++++++++++----------------------------------------
1 file changed, 44 insertions(+), 44 deletions(-)

diff --git a/src/plugins/pack.c b/src/plugins/pack.c @@ -116,10 +116,10 @@ EXTRACTOR_common_cat_unpack (const void *buf, wordp = va_arg (ap, word *); for (i = 0; i < nreps; ++i) { - *wordp = *bp++; - *wordp |= *bp++ << 8; - *wordp |= *bp++ << 16; - *wordp |= *bp++ << 24; + *wordp = (word) * bp++; + *wordp |= ((word) * bp++) << 8; + *wordp |= ((word) * bp++) << 16; + *wordp |= ((word) * bp++) << 24; ++wordp; npacked += 4; } @@ -129,14 +129,14 @@ EXTRACTOR_common_cat_unpack (const void *buf, ll = va_arg (ap, long long *); for (i = 0; i < nreps; ++i) { - *ll = ((long long) *bp++); - *ll |= ((long long) *bp++) << 8; - *ll |= ((long long) *bp++) << 16; - *ll |= ((long long) *bp++) << 24; - *ll |= ((long long) *bp++) << 32; - *ll |= ((long long) *bp++) << 40; - *ll |= ((long long) *bp++) << 48; - *ll |= ((long long) *bp++) << 56; + *ll = ((unsigned long long) *bp++); + *ll |= ((unsigned long long) *bp++) << 8; + *ll |= ((unsigned long long) *bp++) << 16; + *ll |= ((unsigned long long) *bp++) << 24; + *ll |= ((unsigned long long) *bp++) << 32; + *ll |= ((unsigned long long) *bp++) << 40; + *ll |= ((unsigned long long) *bp++) << 48; + *ll |= ((unsigned long long) *bp++) << 56; ++ll; npacked += 8; } @@ -146,10 +146,10 @@ EXTRACTOR_common_cat_unpack (const void *buf, wordp = va_arg (ap, word *); for (i = 0; i < nreps; ++i) { - *wordp = *bp++ << 24; - *wordp |= *bp++ << 16; - *wordp |= *bp++ << 8; - *wordp |= *bp++; + *wordp = ((word) * bp++) << 24; + *wordp |= ((word) * bp++) << 16; + *wordp |= ((word) * bp++) << 8; + *wordp |= (word) * bp++; ++wordp; npacked += 4; } @@ -159,14 +159,14 @@ EXTRACTOR_common_cat_unpack (const void *buf, ll = va_arg (ap, long long *); for (i = 0; i < nreps; ++i) { - *ll = ((long long) *bp++) << 56; - *ll |= ((long long) *bp++) << 48; - *ll |= ((long long) *bp++) << 40; - *ll |= ((long long) *bp++) << 32; - *ll |= ((long long) *bp++) << 24; - *ll |= ((long long) *bp++) << 16; - *ll |= ((long long) *bp++) << 8; - *ll |= ((long long) *bp++); + *ll = ((unsigned long long) *bp++) << 56; + *ll |= ((unsigned long long) *bp++) << 48; + *ll |= ((unsigned long long) *bp++) << 40; + *ll |= ((unsigned long long) *bp++) << 32; + *ll |= ((unsigned long long) *bp++) << 24; + *ll |= ((unsigned long long) *bp++) << 16; + *ll |= ((unsigned long long) *bp++) << 8; + *ll |= ((unsigned long long) *bp++); ++ll; npacked += 8; } @@ -179,9 +179,9 @@ EXTRACTOR_common_cat_unpack (const void *buf, maxlen = va_arg (ap, word); arr = va_arg (ap, void *); - len = *bp++ << 24; - len |= *bp++ << 16; - len |= *bp++ << 8; + len = ((word) * bp++) << 24; + len |= ((word) * bp++) << 16; + len |= ((word) * bp++) << 8; len |= *bp++; if (len > maxlen) @@ -203,9 +203,9 @@ EXTRACTOR_common_cat_unpack (const void *buf, maxlen = cbvp->len; arr = cbvp->data; - len = *bp++ << 24; - len |= *bp++ << 16; - len |= *bp++ << 8; + len = ((word) * bp++) << 24; + len |= ((word) * bp++) << 16; + len |= ((word) * bp++) << 8; len |= *bp++; if (len > maxlen) @@ -230,7 +230,7 @@ EXTRACTOR_common_cat_unpack (const void *buf, *sbytep = *bp++; if ((sizeof (sbyte) > 1) && (*sbytep & 0x80)) - *sbytep |= (~0) << ((sizeof (sbyte) - 1) * 8); + *sbytep |= (sbyte) (~0u << ((sizeof (sbyte) - 1) * 8)); ++sbytep; npacked += 1; @@ -246,7 +246,7 @@ EXTRACTOR_common_cat_unpack (const void *buf, *shalfp |= *bp++ << 8; if ((sizeof (shalf) > 2) && (*shalfp & 0x8000)) - *shalfp |= (~0) << ((sizeof (shalf) - 2) * 8); + *shalfp |= (shalf) (~0u << ((sizeof (shalf) - 2) * 8)); ++shalfp; npacked += 2; @@ -261,7 +261,7 @@ EXTRACTOR_common_cat_unpack (const void *buf, *shalfp |= *bp++; if ((sizeof (shalf) > 2) && (*shalfp & 0x8000)) - *shalfp |= (~0) << ((sizeof (shalf) - 2) * 8); + *shalfp |= (shalf) (~0u << ((sizeof (shalf) - 2) * 8)); ++shalfp; npacked += 2; @@ -273,12 +273,12 @@ EXTRACTOR_common_cat_unpack (const void *buf, for (i = 0; i < nreps; ++i) { *swordp = *bp++; - *swordp |= *bp++ << 8; - *swordp |= *bp++ << 16; - *swordp |= *bp++ << 24; + *swordp |= (sword) (((word) * bp++) << 8); + *swordp |= (sword) (((word) * bp++) << 16); + *swordp |= (sword) (((word) * bp++) << 24); if ((sizeof (swordp) > 4) && (*swordp & 0x80000000)) - *swordp |= (~0) << ((sizeof (sword) - 4) * 8); + *swordp |= (sword) (~0u << ((sizeof (sword) - 4) * 8)); ++swordp; npacked += 4; @@ -289,13 +289,13 @@ EXTRACTOR_common_cat_unpack (const void *buf, swordp = va_arg (ap, sword *); for (i = 0; i < nreps; ++i) { - *swordp = *bp++ << 24; - *swordp |= *bp++ << 16; - *swordp |= *bp++ << 8; + *swordp = (sword) (((word) * bp++) << 24); + *swordp |= (sword) (((word) * bp++) << 16); + *swordp |= (sword) (((word) * bp++) << 8); *swordp |= *bp++; if ((sizeof (swordp) > 4) && (*swordp & 0x80000000)) - *swordp |= (~0) << ((sizeof (sword) - 4) * 8); + *swordp |= (sword) (~0u << ((sizeof (sword) - 4) * 8)); ++swordp; npacked += 4; @@ -306,9 +306,9 @@ EXTRACTOR_common_cat_unpack (const void *buf, cbvp = va_arg (ap, struct cat_bvec *); for (i = 0; i < nreps; ++i) { - len = *bp++ << 24; - len |= *bp++ << 16; - len |= *bp++ << 8; + len = ((word) * bp++) << 24; + len |= ((word) * bp++) << 16; + len |= ((word) * bp++) << 8; len |= *bp++; newbuf = (byte *) malloc (len);