commit dbb0fdd59e3182dfae38f7a620384d4ae074e5a8
parent f3397e43664392aa0f116f5de422b74fb820e3a3
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 29 Jul 2026 11:06:50 +0200
fix integer type issues
Diffstat:
| M | src/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);