Răsfoiți Sursa

drm: Fix hashtab implementation leaking illegal error codes to user space.

reported by Dave Airlie

Signed-off-by: Dave Airlie <airlied@linux.ie>
Thomas Hellstrom 18 ani în urmă
părinte
comite
47cc140931
1 a modificat fișierele cu 3 adăugiri și 3 ștergeri
  1. 3 3
      drivers/char/drm/drm_hashtab.c

+ 3 - 3
drivers/char/drm/drm_hashtab.c

@@ -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)