]> granicus.if.org Git - python/commitdiff
fix signed/unsigned mismatch in struct
authorBob Ippolito <bob@redivi.com>
Fri, 26 May 2006 16:23:28 +0000 (16:23 +0000)
committerBob Ippolito <bob@redivi.com>
Fri, 26 May 2006 16:23:28 +0000 (16:23 +0000)
Modules/_struct.c

index 95b5e0bb050977141eadd055d2c8835577266127..a1142169183f3996a3c0e4a6646dc86912d01311 100644 (file)
@@ -763,7 +763,7 @@ bp_uint(char *p, PyObject *v, const formatdef *f)
                return -1;
        i = f->size;
 #ifdef PY_STRUCT_RANGE_CHECKING
-       if (i != SIZEOF_LONG && x >= (1 << (i * 8)))
+       if (i != SIZEOF_LONG && x >= (1 << (((unsigned int)i) * 8)))
                return _range_error(f->format, f->size, 1);
 #endif
        do {
@@ -975,7 +975,7 @@ lp_uint(char *p, PyObject *v, const formatdef *f)
                return -1;
        i = f->size;
 #ifdef PY_STRUCT_RANGE_CHECKING
-       if (i != SIZEOF_LONG && x >= (1 << (i * 8)))
+       if (i != SIZEOF_LONG && x >= (1 << (((unsigned int)i) * 8)))
                return _range_error(f->format, f->size, 1);
 #endif
        do {