From f58512db610bb5ce272a142a552b8bf75b8c2f6e Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Mon, 16 Dec 2013 20:01:57 -0500 Subject: [PATCH] lbximg: Return failure if there was a decoding error. If any frame was not decoded because liblbx returned an error, we should return a non-zero exit status from the tool. Previously this would only happen if *all* frames failed. --- src/lbximg.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lbximg.c b/src/lbximg.c index c88fc4e..0fd3693 100644 --- a/src/lbximg.c +++ b/src/lbximg.c @@ -263,6 +263,7 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) unsigned char *framebits; struct lbx_colour palette[256]; struct lbx_imginfo info; + int ret = EXIT_SUCCESS; int extracted = 0; unsigned int i; @@ -287,6 +288,7 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) if (usepalette) { if (loadpalette(img, &info, palf, override, palette) == -1) { + ret = EXIT_FAILURE; goto err; } } @@ -302,6 +304,7 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) data = lbx_img_getframe(img, i); if (!data) { tool_err(-1, "error in frame %u: %s", i, lbx_errmsg()); + ret = EXIT_FAILURE; continue; } @@ -316,14 +319,11 @@ decode(struct lbx_image *img, FILE *palf, FILE *override, int fmt, char **argv) if (!extracted) { tool_err(-1, "no frames extracted."); - goto err; + ret = EXIT_FAILURE; } - - free(framebits); - return EXIT_SUCCESS; err: free(framebits); - return EXIT_FAILURE; + return ret; } int main(int argc, char **argv) -- 2.43.0