Commit graph

18 commits

Author SHA1 Message Date
Zhai Zhaoxuan
c382237ac3 packages: nvram: fix memory leak in _nvram_free
The value of nvram_tuple_t is allocated in _nvram_realloc,
but it is not freed in _nvram_free.

Signed-off-by: Zhai Zhaoxuan <zhaizhaoxuan@xiaomi.com>
2017-11-15 21:11:23 +01:00
BangLang Huang
69da83d9f1 nvram: add help message for nvram magic not found
The program would failed if nvram magic not found
in specific partition.

Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
2017-08-22 14:31:32 +02:00
BangLang Huang
c7e2a6fe92 nvram: improve argument check when program start
print help message when argument count is less
than 2.

Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
2017-08-22 14:31:32 +02:00
BangLang Huang
2a253e7cdb nvram: add usage() function
Merge the help message into a single function,
so that we can use it somewhere else.

Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
2017-08-22 14:31:32 +02:00
BangLang Huang
1948d8e08c nvram: fix memory leak
Fix memory leak on nvram_open() and nvram_open_rdonly().

For nvram_open(), the 'fd' should be closed on error, and
mmap_area should be unmap when nvram magic can not be found.

For nvram_open_rdonly(), the 'file' variable should free before
return. Once nvram_find_mtd() return successfully, it will allocate
memory to save mtd device string.

Signed-off-by: BangLang Huang <banglang.huang@foxmail.com>
2017-08-22 14:31:32 +02:00
Rafał Miłecki
4497c35bd0 nvram: get rid of NVRAM_SPACE
Now we support NVRAM whatever its size is.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46262
2015-07-08 06:05:43 +00:00
Rafał Miłecki
d372167491 nvram: fix displayed info about NVRAM size
Use actual partition size and content offset to calculate it.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46260
2015-07-08 05:42:30 +00:00
Rafał Miłecki
4014ba376c Revert "Revert "nvram: increase NVRAM size to 64 KiB""
This reverts commit r45579.

With the latest change r46251 ("nvram: fix "Segmentation fault" caused
by setting memory out of buffer") nvram utility shouldn't crash anymore.

It was tested on 3 brcm47xx devices:
1) Unknown with 0x10000 NVRAM size (0x8000 offset)
2) Linksys E1000 V2.1 with 0x10000 (0x8000 offset)
3) Linksys WRT300N V1 with 0x10000 (0x8000 offset)

And 3 bcm53xx devices:
1) Buffalo WZR-600DHP2 with 0x160000 NVRAM size
2) Buffalo WZR-1750DHP with 0x10000 NVRAM size
3) Netgear R6250 V1 with 0x180000 NVRAM size
(all using 0 offset)

This is an important change as it allows reading whole NVRAM. This may
critical when reading some basic configuration (e.g. switch ports).

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46253
2015-07-07 22:06:04 +00:00
Rafał Miłecki
9f15849910 nvram: fix "Segmentation fault" caused by setting memory out of buffer
Some MTD partitions with NVRAM have content starting in the middle. In
such case offset is set and nvram_header returns pointer to the middle.
It means we have to respect offset when calculating remaining space.

By the way use real MTD partition size (nvram_part_size variable) as we
may want to bump NVRAM_SPACE in the (very near) future.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 46251
2015-07-07 21:21:49 +00:00
Rafał Miłecki
63bb07b28c Revert "nvram: increase NVRAM size to 64 KiB"
This reverts commit ff84c27a281bc19df19bc62ee8688cca5586f6e3.
This tool has really broken size handling (many values hardcoded), it
crashes right now in case of NVRAM not filling whole MTD partition.

Conflicts:
	package/utils/nvram/src/nvram.h

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45579
2015-04-24 15:38:38 +00:00
Rafał Miłecki
97a0e165a6 nvram: fix regression in finding NVRAM beginning
The loop was giving up too early as it never expected NVRAM smaller
than 0x10000.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45578
2015-04-24 14:28:57 +00:00
Rafał Miłecki
7e3272f422 nvram: increase NVRAM size to 64 KiB
For years Broadcom devices use 64 KiB NVRAM partition size and some of
them indeed have it filled in more than 50%. This change allows handling
whole NVRAM e.g. on Netgear WNDR4500 and Netgear R8000.

The same fix was applied to kernel in upstream commit 6ab7c29.

Reported-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45566
2015-04-22 19:07:24 +00:00
Rafał Miłecki
3931288caa nvram: refuse to open NVRAM for writing if it's too big to be handled
Otherwise writing anything will result in loosing data.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45565
2015-04-22 19:07:19 +00:00
Rafał Miłecki
d94fb398f6 nvram: drop check for WGT634U using /proc/diag/model
We don't have broadcom-diag for months or years now and the correct
solution is to simply don't have "nvram" partition on WGT634U anyway.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45564
2015-04-22 19:07:12 +00:00
Rafał Miłecki
0c4c05f0e7 nvram: use correct variable name for MTD partition size
Sytax of /proc/mtd is following:
dev:    size   erasesize  name
which means that sscanf "mtd%d: %08x" reads size, not erasesize.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45563
2015-04-22 19:07:06 +00:00
Rafał Miłecki
615fef1ab8 nvram: drop support for ancient /dev/mtdblock/%d
Path /dev/mtdblock%d is used for years now.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 45562
2015-04-22 19:06:58 +00:00
Felix Fietkau
0f51d48c0e nvram: remove libnvram.so, it is unused and incompatible to the broadcom API anyway
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43698
2014-12-13 23:58:35 +00:00
John Crispin
4ebf19b48f packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37007
2013-06-21 16:54:37 +00:00