[package] nvram: refuse nvram operations on the WGT634U
[openwrt-10.03/.git] / package / nvram / src / nvram.c
index 78baa9431d3ae569fdd56b2523ba1f319a5d235c..ed3da4312b37ce6f01a7a1b7de73256a6d279d58 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) )
                {