nvram: fix regression in finding NVRAM beginning
[openwrt/staging/wigyori.git] / package / utils / nvram / src / nvram.c
index 0e1c7268375cc7b1d579820118326b63d3e8d272..c4bcb1d4a6f00a97f3fc7bfa2a0795f9cf4a7bb1 100644 (file)
@@ -364,7 +364,12 @@ nvram_handle_t * nvram_open(const char *file, int rdonly)
 
                if( mmap_area != MAP_FAILED )
                {
-                       for( i = 0; i <= ((nvram_part_size - NVRAM_SPACE) / sizeof(uint32_t)); i++ )
+                       /*
+                        * Start looking for NVRAM_MAGIC at beginning of MTD
+                        * partition. Stop if there is less than NVRAM_MIN_SPACE
+                        * to check, that was the lowest used size.
+                        */
+                       for( i = 0; i <= ((nvram_part_size - NVRAM_MIN_SPACE) / sizeof(uint32_t)); i++ )
                        {
                                if( ((uint32_t *)mmap_area)[i] == NVRAM_MAGIC )
                                {