Commit Graph

18 Commits (1634461bd208f4bd108ea5c3d3f1cf9eb56d4a7e)

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>
7 years ago
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>
7 years ago
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>
7 years ago
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>
7 years ago
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>
7 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
9 years ago
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
10 years ago
John Crispin 4ebf19b48f packages: clean up the package folder
Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37007
11 years ago