From f1e214411d8fe78a19d4df6837f4cbc4aa136667 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Sun, 28 Apr 2013 14:04:39 +0000
Subject: [PATCH] iwinfo: fix iwinfo_hardware() return value if chip id is not
 found

SVN-Revision: 36471
---
 package/network/utils/iwinfo/Makefile           | 2 +-
 package/network/utils/iwinfo/src/iwinfo_utils.c | 9 +++------
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/package/network/utils/iwinfo/Makefile b/package/network/utils/iwinfo/Makefile
index 3758692450..e0090e0be5 100644
--- a/package/network/utils/iwinfo/Makefile
+++ b/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 := \
diff --git a/package/network/utils/iwinfo/src/iwinfo_utils.c b/package/network/utils/iwinfo/src/iwinfo_utils.c
index b6760c3486..1a831f3ac1 100644
--- a/package/network/utils/iwinfo/src/iwinfo_utils.c
+++ b/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)
-- 
2.30.2