[PATCH] libmtd: fix mtd_dev_present return value on legacy systems
Guido Martínez
guido at vanguardiasur.com.ar
Wed Sep 10 07:56:40 PDT 2014
On legacy systems, if "/proc/mtd" doesn't exist or gives a read error,
mtd_dev_present returns -1 (since it calls legacy_dev_present), contrary
to what's specified in the header file.
This causes checks like
if (mtd_dev_present(n)) {
...
}
to give false positives. Fix this by comparing the return value to 1.
Signed-off-by: Guido Martínez <guido at vanguardiasur.com.ar>
---
lib/libmtd.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/libmtd.c b/lib/libmtd.c
index 2089373..aff4c8b 100644
--- a/lib/libmtd.c
+++ b/lib/libmtd.c
@@ -647,9 +647,9 @@ int mtd_dev_present(libmtd_t desc, int mtd_num) {
struct stat st;
struct libmtd *lib = (struct libmtd *)desc;
- if (!lib->sysfs_supported)
- return legacy_dev_present(mtd_num);
- else {
+ if (!lib->sysfs_supported) {
+ return legacy_dev_present(mtd_num) == 1;
+ } else {
char file[strlen(lib->mtd) + 10];
sprintf(file, lib->mtd, mtd_num);
--
2.1.0
More information about the linux-mtd
mailing list