Explorar o código

iwinfo: fix iwinfo_hardware() return value if chip id is not found

SVN-Revision: 36471
Jo-Philipp Wich %!s(int64=12) %!d(string=hai) anos
pai
achega
f1e214411d

+ 1 - 1
package/network/utils/iwinfo/Makefile

@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiwinfo
-PKG_RELEASE:=43
+PKG_RELEASE:=44
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 PKG_CONFIG_DEPENDS := \

+ 3 - 6
package/network/utils/iwinfo/src/iwinfo_utils.c

@@ -131,7 +131,7 @@ struct iwinfo_hardware_entry * iwinfo_hardware(struct iwinfo_hardware_id *id)
 {
 	FILE *db;
 	char buf[256] = { 0 };
-	static struct iwinfo_hardware_entry e;
+	static struct iwinfo_hardware_entry e, *rv = NULL;
 
 	if (!(db = fopen(IWINFO_HARDWARE_FILE, "r")))
 		return NULL;
@@ -161,15 +161,12 @@ struct iwinfo_hardware_entry * iwinfo_hardware(struct iwinfo_hardware_id *id)
 			(e.subsystem_device_id != id->subsystem_device_id))
 			continue;
 
+		rv = &e;
 		break;
 	}
 
 	fclose(db);
-
-	if (e.device_name[0])
-		return &e;
-
-	return NULL;
+	return rv;
 }
 
 int iwinfo_hardware_id_from_mtd(struct iwinfo_hardware_id *id)