pstore: Avoid size casts for 842 compression
PATCH 1/1 pstore: Avoid size casts for 842 compression
Instead of casting, make sure we don't end up with giant values and just perform regular assignments with unsigned int instead of re-cast size_t.
Signed-off-by Kees Cook <[email protected]>
--- fs/pstore/platform.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-)
fs/pstore/platform.c +14 -4
@@ -452,27 +452,37 @@ static const struct pstore_zbackend backend_lz4hc = {static int compress_842 (const void *in,void *out,size_t inlen,size_t outlen) {int ret; +unsigned int size; - ret =sw842_compress (in, inlen, out, (unsigned int *)&outlen, workspace); +if (outlen >UINT_MAX ) +return -EIO ; + size = outlen; + + ret =sw842_compress (in, inlen, out, &size, workspace);if (ret) {pr_err ("sw842_compress error; compression failed!\n" );return ret; } -return outlen; +return size; }static int decompress_842 (void *in,void *out,size_t inlen,size_t outlen) {int ret; +unsigned int size; - ret =sw842_decompress (in, inlen, out, (unsigned int *)&outlen); +if (outlen >UINT_MAX ) +return -EIO ; + size = outlen; + + ret =sw842_decompress (in, inlen, out, &size);if (ret) {pr_err ("sw842_decompress error, ret = %d!\n" , ret);return ret; } -return outlen; +return size; }static void allocate_842 (void )
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security