Daisuke Nojiri 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);
I think using assert here is not consistent (it halts while other algorithms just return 0 on error) […]
How about:
- Return whatever number of bytes copied to dst buffer. Callers are responsible for handling size mismatch (src > dst or src < dst). The API doesn't know what is expected but callers do. - If partial decompression isn't supported and dst buffer is short, return 0. - For any other errors, return 0.
I think these are more or less aligned with what developers expect. So, it'll reduce the stress and surprises because the behavior is consistent across algorithms.