]> err.no Git - linux-2.6/commitdiff
drm: Fix hashtab implementation leaking illegal error codes to user space.
authorThomas Hellstrom <thomas-at-tungstengraphics-dot-com>
Thu, 21 Sep 2006 18:04:18 +0000 (04:04 +1000)
committerDave Airlie <airlied@linux.ie>
Thu, 21 Sep 2006 19:32:34 +0000 (05:32 +1000)
reported by Dave Airlie

Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/char/drm/drm_hashtab.c

index 480611395481b7521a9b107a7e89e48332add537..a0b2d6802ae4323c69908b3fb930798fa0650967 100644 (file)
@@ -106,7 +106,7 @@ int drm_ht_insert_item(drm_open_hash_t *ht, drm_hash_item_t *item)
        hlist_for_each(list, h_list) {
                entry = hlist_entry(list, drm_hash_item_t, head);
                if (entry->key == key)
-                       return -1;
+                       return -EINVAL;
                if (entry->key > key)
                        break;
                parent = list;
@@ -154,7 +154,7 @@ int drm_ht_find_item(drm_open_hash_t *ht, unsigned long key,
 
        list = drm_ht_find_key(ht, key);
        if (!list)
-               return -1;
+               return -EINVAL;
 
        *item = hlist_entry(list, drm_hash_item_t, head);
        return 0;
@@ -170,7 +170,7 @@ int drm_ht_remove_key(drm_open_hash_t *ht, unsigned long key)
                ht->fill--;
                return 0;
        }
-       return -1;
+       return -EINVAL;
 }
 
 int drm_ht_remove_item(drm_open_hash_t *ht, drm_hash_item_t *item)