]> git.ozlabs.org Git - ppp.git/commitdiff
pppd/tty.c: Use unsigned constants for ACCM calculations
authorPaul Mackerras <paulus@ozlabs.org>
Sat, 18 Mar 2023 08:44:13 +0000 (19:44 +1100)
committerPaul Mackerras <paulus@ozlabs.org>
Sat, 18 Mar 2023 08:44:13 +0000 (19:44 +1100)
Use unsigned constants to avoid integer overflows when shifting, and
because xmit_accm[] is an array of unsigned values.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
pppd/tty.c

index 127878117e6f7146a29cd2cd75606feb2b38853f..cef4ff722f9fe7c38301343154d5b8f4aec5930d 100644 (file)
@@ -418,7 +418,7 @@ setescape(char **argv)
            ppp_option_error("can't escape character 0x%x", n);
            ret = 0;
        } else
-           xmit_accm[n >> 5] |= 1 << (n & 0x1F);
+           xmit_accm[n >> 5] |= 1U << (n & 0x1F);
        while (*p == ',' || *p == ' ')
            ++p;
     }
@@ -435,7 +435,7 @@ printescape(struct option *opt, void (*printer)(void *, char *, ...), void *arg)
        for (n = 0; n < 256; ++n) {
                if (n == 0x7d)
                        n += 2;         /* skip 7d, 7e */
-               if (xmit_accm[n >> 5] & (1 << (n & 0x1f))) {
+               if (xmit_accm[n >> 5] & (1U << (n & 0x1f))) {
                        if (!first)
                                printer(arg, ",");
                        else
@@ -454,7 +454,7 @@ void tty_init(void)
 {
     ppp_add_notify(NF_PID_CHANGE, maybe_relock, 0);
     the_channel = &tty_channel;
-    xmit_accm[3] = 0x60000000;
+    xmit_accm[3] = 0x60000000U;
 }
 
 /*