From 95e79fe39e9c89efb73aef4dfb09014e147e528a Mon Sep 17 00:00:00 2001
From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 8 Jun 2009 11:59:41 +0000
Subject: [package] nvram: refuse nvram operations on the WGT634U

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16378 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/nvram/Makefile    |  2 +-
 package/nvram/src/nvram.c | 12 +++++++++++-
 2 files changed, 12 insertions(+), 2 deletions(-)

(limited to 'package/nvram')

diff --git a/package/nvram/Makefile b/package/nvram/Makefile
index ff9359bea..c2270714f 100644
--- a/package/nvram/Makefile
+++ b/package/nvram/Makefile
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nvram
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
diff --git a/package/nvram/src/nvram.c b/package/nvram/src/nvram.c
index 78baa9431..ed3da4312 100644
--- a/package/nvram/src/nvram.c
+++ b/package/nvram/src/nvram.c
@@ -411,8 +411,18 @@ char * nvram_find_mtd(void)
 	char dev[PATH_MAX];
 	char *path = NULL;
 	struct stat s;
+	int supported = 1;
 
-	if( (fp = fopen("/proc/mtd", "r")) )
+	/* Refuse any operation on the WGT634U */
+	if( (fp = fopen("/proc/diag/model", "r")) )
+	{
+		if( fgets(dev, sizeof(dev), fp) && !strncmp(dev, "Netgear WGT634U", 15) )
+			supported = 0;
+
+		fclose(fp);
+	}
+
+	if( supported && (fp = fopen("/proc/mtd", "r")) )
 	{
 		while( fgets(dev, sizeof(dev), fp) )
 		{
-- 
cgit v1.2.3