nvram: refuse nvram operations on the WGT634U
authorJo-Philipp Wich <jow@openwrt.org>
Mon, 8 Jun 2009 11:59:41 +0000 (11:59 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Mon, 8 Jun 2009 11:59:41 +0000 (11:59 +0000)
SVN-Revision: 16378

package/nvram/Makefile
package/nvram/src/nvram.c

index ff9359b..c227071 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nvram
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
index 78baa94..ed3da43 100644 (file)
@@ -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) )
                {