Quellcode durchsuchen

nvram: refuse nvram operations on the WGT634U

SVN-Revision: 16378
Jo-Philipp Wich vor 16 Jahren
Ursprung
Commit
9f4d70e9a3
2 geänderte Dateien mit 12 neuen und 2 gelöschten Zeilen
  1. 1 1
      package/nvram/Makefile
  2. 11 1
      package/nvram/src/nvram.c

+ 1 - 1
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)
 

+ 11 - 1
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) )
 		{