tools/imagetool: Fix segfault when tparams->verify_header is NULL

On some image types like i.MX8 and i.MX8M, the verify_header function
is not implemented.

Before this commit, no check on tparams->verify_header was done causing
a segfault if NULL. Now, a proper error message is printed.

Signed-off-by: Nicolas Heemeryck <nicolas.heemeryck@gmail.com>
diff --git a/tools/imagetool.c b/tools/imagetool.c
index 5ad6d74..f14ca2f 100644
--- a/tools/imagetool.c
+++ b/tools/imagetool.c
@@ -80,27 +80,33 @@
 	struct image_type_params *tparams,
 	struct image_tool_params *params)
 {
-	int retval;
+	int retval = -1;
 
-	retval = tparams->verify_header((unsigned char *)ptr, sbuf->st_size,
-			params);
+	if (tparams->verify_header) {
+		retval = tparams->verify_header((unsigned char *)ptr,
+						sbuf->st_size, params);
 
-	if (retval == 0) {
-		/*
-		 * Print the image information if verify is successful
-		 */
-		if (tparams->print_header) {
-			if (!params->quiet)
-				tparams->print_header(ptr);
+		if (retval == 0) {
+			/*
+			 * Print the image information if verify is successful
+			 */
+			if (tparams->print_header) {
+				if (!params->quiet)
+					tparams->print_header(ptr);
+			} else {
+				fprintf(stderr,
+					"%s: print_header undefined for %s\n",
+					params->cmdname, tparams->name);
+			}
 		} else {
 			fprintf(stderr,
-				"%s: print_header undefined for %s\n",
-				params->cmdname, tparams->name);
+				"%s: verify_header failed for %s with exit code %d\n",
+				params->cmdname, tparams->name, retval);
 		}
+
 	} else {
-		fprintf(stderr,
-			"%s: verify_header failed for %s with exit code %d\n",
-			params->cmdname, tparams->name, retval);
+		fprintf(stderr, "%s: print_header undefined for %s\n",
+			params->cmdname, tparams->name);
 	}
 
 	return retval;