From: Guido Martínez Date: Wed, 10 Sep 2014 14:56:40 +0000 (-0300) Subject: libmtd: fix mtd_dev_present return value on legacy systems X-Git-Tag: v1.5.2~22 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=51b71fb46a069fa137c7a02769d60561e178ba15;p=mtd-utils.git libmtd: fix mtd_dev_present return value on legacy systems 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 Signed-off-by: Brian Norris --- 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);