Skip to contentSkip to conversation

extcon: signedness bugs break error handling

PATCH In review Dan Carpenter 3 participants 3 messages Aug 4, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 extcon: signedness bugs break error handling

Unsigned is never less than zero so this error handling won't work.

Fixes be052cc87745 ('extcon: Fix hang and extcon_get/set_cable_state().')
drivers/extcon/extcon.c +3 -3
index 8301a72..da2fb6c 100644
@@ -143,7 +143,7 @@ static int find_cable_id_by_name(struct extcon_dev *edev, const char *name)
 
 static int find_cable_index_by_name(struct extcon_dev *edev, const char *name)
 {
-	unsigned int id;
+	int id;
 
 	if (edev->max_supported = 0)
 		return -EINVAL;
@@ -379,7 +379,7 @@ EXPORT_SYMBOL_GPL(extcon_get_cable_state_);
  */
 int extcon_get_cable_state(struct extcon_dev *edev, const char *cable_name)
 {
-	unsigned int id;
+	int id;
 
 	id = find_cable_id_by_name(edev, cable_name);
 	if (id < 0)
@@ -430,7 +430,7 @@ EXPORT_SYMBOL_GPL(extcon_set_cable_state_);
 int extcon_set_cable_state(struct extcon_dev *edev,
 			const char *cable_name, bool cable_state)
 {
-	unsigned int id;
+	int id;
 
 	id = find_cable_id_by_name(edev, cable_name);
 	if (id < 0)
Reviewed-by on v1 1/1
#1 lore raw
Quoted 4 lines · Dan Carpenter

Unsigned is never less than zero so this error handling won't work.

Fixes be052cc87745 ('extcon: Fix hang and extcon_get/set_cable_state().')

Thanks Dan.

cheers,
-roger

Quoted 33 lines
drivers/extcon/extcon.c +3 -3
index 8301a72..da2fb6c 100644
@@ -143,7 +143,7 @@ static int find_cable_id_by_name(struct extcon_dev *edev, const char *name)
 
 static int find_cable_index_by_name(struct extcon_dev *edev, const char *name)
 {
-	unsigned int id;
+	int id;
 
 	if (edev->max_supported = 0)
 		return -EINVAL;
@@ -379,7 +379,7 @@ EXPORT_SYMBOL_GPL(extcon_get_cable_state_);
  */
 int extcon_get_cable_state(struct extcon_dev *edev, const char *cable_name)
 {
-	unsigned int id;
+	int id;
 
 	id = find_cable_id_by_name(edev, cable_name);
 	if (id < 0)
@@ -430,7 +430,7 @@ EXPORT_SYMBOL_GPL(extcon_set_cable_state_);
 int extcon_set_cable_state(struct extcon_dev *edev,
 			const char *cable_name, bool cable_state)
 {
-	unsigned int id;
+	int id;
 
 	id = find_cable_id_by_name(edev, cable_name);
 	if (id < 0)
maintainer
#2 lore raw
In reply to Dan Carpenter

drivers/extcon/extcon.c static int find_cable_id_by_name(struct extcon_dev *edev, const char *name) · line 143

Quoted 11 lines · Dan Carpenter

Unsigned is never less than zero so this error handling won't work.

Fixes be052cc87745 ('extcon: Fix hang and extcon_get/set_cable_state().')
drivers/extcon/extcon.c +0 -0
index 8301a72..da2fb6c 100644
@@ -143,7 +143,7 @@ static int find_cable_id_by_name(struct extcon_dev *edev, const char *name)
 

Applied it.

Thanks,
Chanwoo Choi