cbfstool: Don't add compression attribute for uncompressed files

Our current cbfstool has always added a compression attribute to the
CBFS file header for all files that used the cbfstool_convert_raw()
function (basically anything other than a stage or payload), even if the
compression type was NONE. This was likely some sort of oversight, since
coreboot CBFS reading code has always accepted the absence of a
compression attribute to mean "no compression". This patch fixes the
behavior to avoid adding the attribute in these cases.

Change-Id: Ic4a41152db9df66376fa26096d6f3a53baea51de
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46835
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/util/cbfstool/cbfstool.c b/util/cbfstool/cbfstool.c
index d2df1cc..c7a6079 100644
--- a/util/cbfstool/cbfstool.c
+++ b/util/cbfstool/cbfstool.c
@@ -595,6 +595,9 @@
 			return -1;
 		memcpy(compressed, buffer->data + 8, compressed_size);
 	} else {
+		if (param.compression == CBFS_COMPRESS_NONE)
+			goto out;
+
 		compress = compression_function(param.compression);
 		if (!compress)
 			return -1;
@@ -606,7 +609,7 @@
 			     compressed, &compressed_size)) {
 			WARN("Compression failed - disabled\n");
 			free(compressed);
-			return 0;
+			goto out;
 		}
 	}
 
@@ -626,6 +629,7 @@
 	buffer->data = compressed;
 	buffer->size = compressed_size;
 
+out:
 	header->len = htonl(buffer->size);
 	return 0;
 }