gcc42-integer-overflow-fix-20071007
[openafs.git] / src / dir / dir.c
index d608639..c32f149 100644 (file)
@@ -477,7 +477,7 @@ DirHash(register char *string)
 {
     /* Hash a string to a number between 0 and NHASHENT. */
     register unsigned char tc;
-    register int hval;
+    unsigned int hval;
     register int tval;
     hval = 0;
     while ((tc = (*string++))) {
@@ -487,7 +487,7 @@ DirHash(register char *string)
     tval = hval & (NHASHENT - 1);
     if (tval == 0)
        return tval;
-    else if (hval < 0)
+    else if (hval >= 1<<31)
        tval = NHASHENT - tval;
     return tval;
 }