amdfwtool: Check sanity before filling the data array

Change-Id: I8284c35a0124ba4588d199024e28d3445c681896
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>wq
Reviewed-on: https://review.coreboot.org/c/coreboot/+/78763
Reviewed-by: Martin L Roth <gaumless@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/util/amdfwtool/data_parse.c b/util/amdfwtool/data_parse.c
index 728feae..5e06d97 100644
--- a/util/amdfwtool/data_parse.c
+++ b/util/amdfwtool/data_parse.c
@@ -618,11 +618,16 @@
 		   match[4]: Optional directory level to be dropped
 		   match[6]: Optional hash table ID to put the hash for the entry
 		 */
-		oneline[match[FW_TYPE].rm_eo] = '\0';
-		oneline[match[FW_FILE].rm_eo] = '\0';
-		oneline[match[OPT_LEVEL].rm_eo] = '\0';
-		oneline[match[OPT_HASH_TABLE_ID].rm_eo] = '\0';
-		oneline[match[OPT_FWID_TYPE].rm_eo] = '\0';
+		if (match[FW_TYPE].rm_eo != -1)
+			oneline[match[FW_TYPE].rm_eo] = '\0';
+		if (match[FW_FILE].rm_eo != -1)
+			oneline[match[FW_FILE].rm_eo] = '\0';
+		if (match[OPT_LEVEL].rm_eo != -1)
+			oneline[match[OPT_LEVEL].rm_eo] = '\0';
+		if (match[OPT_HASH_TABLE_ID].rm_eo != -1)
+			oneline[match[OPT_HASH_TABLE_ID].rm_eo] = '\0';
+		if (match[OPT_FWID_TYPE].rm_eo != -1)
+			oneline[match[OPT_FWID_TYPE].rm_eo] = '\0';
 		retval = 1;
 	} else {
 		retval = 0;