From 484e33c460d65282264d97f6bc178b8d426de77b Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Mon, 23 Jan 2017 09:35:44 +0100 Subject: [PATCH] UPSTREAM: cbfs-compression-tool: catch compression failures If compression failed, just store the uncompressed data, which is what cbfstool does as well. BUG=chrome-os-partner:62235 BRANCH=none TEST=none Change-Id: I41f911169f376be3dab1335d93e1b3ff68ad7377 Signed-off-by: Patrick Georgi Original-Commit-Id: b46c4ecaba97cc1edbfa2114651fc2bcbf49914b Original-Change-Id: I67f51982b332d6ec1bea7c9ba179024fc5344743 Original-Signed-off-by: Patrick Georgi Original-Reviewed-on: https://review.coreboot.org/18201 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Paul Menzel Original-Reviewed-by: Martin Roth Reviewed-on: https://chromium-review.googlesource.com/430741 --- util/cbfstool/cbfscomptool.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/util/cbfstool/cbfscomptool.c b/util/cbfstool/cbfscomptool.c index 1aa1699588..9e804860a9 100644 --- a/util/cbfstool/cbfscomptool.c +++ b/util/cbfstool/cbfscomptool.c @@ -150,7 +150,12 @@ int compress(char *infile, char *outfile, char *algoname) remsize -= readsz; } - comp(indata, insize, outdata, &outsize); + if (comp(indata, insize, outdata, &outsize) == -1) { + outsize = insize; + free(outdata); + outdata = indata; + algo = &types_cbfs_compression[0]; + } char header[8]; header[0] = algo->type & 0xff;