mtd: fix md5sum error checking
authorJohn Crispin <john@openwrt.org>
Thu, 5 Mar 2015 20:25:02 +0000 (20:25 +0000)
committerJohn Crispin <john@openwrt.org>
Thu, 5 Mar 2015 20:25:02 +0000 (20:25 +0000)
In mtd_verify(), the return value of md5sum() has been
interpreted as error if nonzero, while the function
returns number of processed bytes, which caused
mtd_verify() to always fail.

This patch fixes error checking to interpret only
negative values as errors.

Signed-off-by: Zefir Kurtisi <zefir.kurtisi@neratec.com>
SVN-Revision: 44605

package/system/mtd/src/mtd.c

index 72b9ddfe219804978e0974c0917e246aae2c3c1d..741b57b48070d28d093fa5fc843d0ca84b3eb3b7 100644 (file)
@@ -337,7 +337,7 @@ mtd_verify(const char *mtd, char *file)
        if (quiet < 2)
                fprintf(stderr, "Verifying %s against %s ...\n", mtd, file);
 
-       if (stat(file, &s) || md5sum(file, f_md5)) {
+       if (stat(file, &s) || md5sum(file, f_md5) < 0) {
                fprintf(stderr, "Failed to hash %s\n", file);
                return -1;
        }