Avoid walking off the end of the hash table. (Coverity report #465)
authorAdam Jackson <ajax@nwnk.net>
Wed, 15 Mar 2006 01:02:54 +0000 (01:02 +0000)
committerAdam Jackson <ajax@nwnk.net>
Wed, 15 Mar 2006 01:02:54 +0000 (01:02 +0000)
libdrm/ChangeLog
libdrm/xf86drmHash.c

index b1faa5e..1e74070 100644 (file)
@@ -1,3 +1,8 @@
+2006-03-14  Adam Jackson  <ajax@freedesktop.org>
+
+       * xf86drmHash.c:
+       Avoid walking off the end of the hash table.  (Coverity report #465)
+
 2006-02-20  Adam Jackson  <ajax@freedesktop.org>
 
        * ChangeLog:
index 71d3d89..a1908d0 100644 (file)
@@ -292,14 +292,15 @@ int drmHashNext(void *t, unsigned long *key, void **value)
 {
     HashTablePtr  table = (HashTablePtr)t;
 
-    for (; table->p0 < HASH_SIZE;
-        ++table->p0, table->p1 = table->buckets[table->p0]) {
+    while (table->p0 < HASH_SIZE) {
        if (table->p1) {
            *key       = table->p1->key;
            *value     = table->p1->value;
            table->p1  = table->p1->next;
            return 1;
        }
+       table->p1 = table->buckets[table->p0];
+       ++table->p0;
     }
     return 0;
 }