| From 95633c4dfe943a701d4fcd809e6cabf4bf8710b8 Mon Sep 17 00:00:00 2001 |
| From: Barry Grussling <barry@grussling.com> |
| Date: Sun, 12 Jan 2020 12:33:32 -0800 |
| Subject: [PATCH] mtd-utils: Fix return value of ubiformat |
| |
| This changeset fixes a feature regression in ubiformat. Older versions of |
| ubiformat, when invoked with a flash-image, would return 0 in the case no error |
| was encountered. Upon upgrading to latest, it was discovered that ubiformat |
| returned 255 even without encountering an error condition. |
| |
| This changeset corrects the above issue and causes ubiformat, when given an |
| image file, to return 0 when no errors are detected. |
| |
| Tested by running through my loading scripts and verifying ubiformat returned |
| 0. |
| |
| Signed-off-by: Barry Grussling <barry@grussling.com> |
| Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at> |
| Backported-from: 95633c4dfe943a701d4fcd809e6cabf4bf8710b8 |
| Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
| --- |
| ubi-utils/ubiformat.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c |
| index 64afad2..be40e52 100644 |
| --- a/ubi-utils/ubiformat.c |
| +++ b/ubi-utils/ubiformat.c |
| @@ -550,6 +550,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd, |
| struct ubi_vtbl_record *vtbl; |
| int eb1 = -1, eb2 = -1; |
| long long ec1 = -1, ec2 = -1; |
| + int ret = -1; |
| |
| write_size = UBI_EC_HDR_SIZE + mtd->subpage_size - 1; |
| write_size /= mtd->subpage_size; |
| @@ -643,8 +644,10 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd, |
| if (!args.quiet && !args.verbose) |
| printf("\n"); |
| |
| - if (novtbl) |
| + if (novtbl) { |
| + ret = 0; |
| goto out_free; |
| + } |
| |
| if (eb1 == -1 || eb2 == -1) { |
| errmsg("no eraseblocks for volume table"); |
| @@ -669,7 +672,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd, |
| |
| out_free: |
| free(hdr); |
| - return -1; |
| + return ret; |
| } |
| |
| int main(int argc, char * const argv[]) |
| -- |
| 2.24.1 |
| |