diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2017-05-25 19:38:38 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2017-05-25 19:38:38 +0000 |
commit | 12df5ad9af4981f5d3c31a9819d31618c0f1af51 (patch) | |
tree | 97e3336a3054b8d8a0150b9d414934f73c99cb30 /crypto/comp/c_rle.c | |
parent | 5315173646e65b5025be33013edc33eb9658e683 (diff) |
Diffstat (limited to 'crypto/comp/c_rle.c')
-rw-r--r-- | crypto/comp/c_rle.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/crypto/comp/c_rle.c b/crypto/comp/c_rle.c index e9aabbd166a2e..41919613eec5a 100644 --- a/crypto/comp/c_rle.c +++ b/crypto/comp/c_rle.c @@ -31,12 +31,11 @@ static int rle_compress_block(COMP_CTX *ctx, unsigned char *out, unsigned int olen, unsigned char *in, unsigned int ilen) { - /* int i; */ + if (ilen == 0) + return 0; - if (ilen == 0 || olen < (ilen - 1)) { - /* ZZZZZZZZZZZZZZZZZZZZZZ */ - return (-1); - } + if (olen <= ilen) + return -1; *(out++) = 0; memcpy(out, in, ilen); @@ -49,14 +48,16 @@ static int rle_expand_block(COMP_CTX *ctx, unsigned char *out, { int i; - if (olen < (ilen - 1)) { - /* ZZZZZZZZZZZZZZZZZZZZZZ */ - return (-1); - } + if (ilen == 0) + return 0; + + if (olen < (ilen - 1)) + return -1; i = *(in++); - if (i == 0) { - memcpy(out, in, ilen - 1); - } + if (i != 0) + return -1; + + memcpy(out, in, ilen - 1); return (ilen - 1); } |