tools: dumpimage: Provide more feedback on internal errors
authorAndrew F. Davis <afd@ti.com>
Tue, 17 Sep 2019 21:09:33 +0000 (17:09 -0400)
committerTom Rini <trini@konsulko.com>
Tue, 7 Jan 2020 16:12:46 +0000 (11:12 -0500)
The dumpimage utility errors out in a number of places without providing
sufficient feedback to allow the user to easily determine what has gone
wrong. Add additional error messages to make the cause of the failure
more obvious.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
tools/dumpimage.c

index ee3d41dda4d4b2b0ed46f2b430c5d01ab95812d8..d5f893daf1694b49d48e17b22a9e3f8ffd7c6fbc 100644 (file)
@@ -35,14 +35,23 @@ static int dumpimage_extract_subimage(struct image_type_params *tparams,
        if (tparams->verify_header) {
                retval = tparams->verify_header((unsigned char *)ptr,
                                sbuf->st_size, &params);
-               if (retval != 0)
+               if (retval != 0) {
+                       fprintf(stderr, "%s: failed to verify header of %s\n",
+                               params.cmdname, tparams->name);
                        return -1;
+               }
+
                /*
                 * Extract the file from the image
                 * if verify is successful
                 */
                if (tparams->extract_subimage) {
                        retval = tparams->extract_subimage(ptr, &params);
+                       if (retval != 0) {
+                               fprintf(stderr, "%s: extract_subimage failed for %s\n",
+                                       params.cmdname, tparams->name);
+                               return -3;
+                       }
                } else {
                        fprintf(stderr,
                                "%s: extract_subimage undefined for %s\n",
@@ -175,6 +184,9 @@ int main(int argc, char **argv)
                 * image type. Returns the error code if not matched
                 */
                retval = dumpimage_extract_subimage(tparams, ptr, &sbuf);
+               if (retval)
+                       fprintf(stderr, "%s: Can't extract subimage from %s\n",
+                               params.cmdname, params.imagefile);
        } else {
                /*
                 * Print the image information for matched image type