Julius Werner has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/31606 )
Change subject: libpayload: cbfs: Require input size and output size for cbfs_decompress ......................................................................
Patch Set 2:
(1 comment)
https://review.coreboot.org/#/c/31606/1/payloads/libpayload/libcbfs/cbfs_cor... File payloads/libpayload/libcbfs/cbfs_core.c:
https://review.coreboot.org/#/c/31606/1/payloads/libpayload/libcbfs/cbfs_cor... PS1, Line 331: len = MIN(srcn, dstn);
while ulzman() returns the partial decompressed length.
Pretty sure it doesn't. At the end it does 'if (res != 0) return 0'.
Doing the partial copy but still returning 0 would be in line with both other algorithms. Our signatures for now have always been 0: error, >0: complete success, I would be wary of changing that because payloads may expect it (they probably don't call cbfs_decompress(), but they may call ulzman/ulz4fn directly). You could also no longer distinguish success from partial success on the versions that don't pass in the size that way.