summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCharles Allen <charles@allen-net.com>2015-04-14 20:33:43 (GMT)
committerCharles Allen <charles@allen-net.com>2015-04-14 20:33:43 (GMT)
commitb664a72145f5e48fbbb82b8efb52c72518b41aaf (patch)
treea69e00b169ea60c41f74381a219ae1667ba8e9d9
parent3f4f623bc9d8635459ab45f978bd1fcfd52ddc75 (diff)
downloadlz4-b664a72145f5e48fbbb82b8efb52c72518b41aaf.zip
lz4-b664a72145f5e48fbbb82b8efb52c72518b41aaf.tar.gz
lz4-b664a72145f5e48fbbb82b8efb52c72518b41aaf.tar.bz2
Revert "Revert "Add more descriptive frame errors""
This reverts commit 5a6652708439800e30d21e0cd24ed15cfb745a8b.
-rw-r--r--lib/lz4frame.c14
-rw-r--r--lib/lz4frame_static.h5
2 files changed, 12 insertions, 7 deletions
diff --git a/lib/lz4frame.c b/lib/lz4frame.c
index 8d4c029..41f8b1e 100644
--- a/lib/lz4frame.c
+++ b/lib/lz4frame.c
@@ -862,16 +862,16 @@ static size_t LZ4F_decodeHeader(LZ4F_dctx_internal_t* dctxPtr, const void* srcVo
blockSizeID = (BD>>4) & _3BITS;
/* validate */
- if (version != 1) return (size_t)-ERROR_GENERIC; /* Version Number, only supported value */
- if (blockChecksumFlag != 0) return (size_t)-ERROR_GENERIC; /* Only supported value for the time being */
- if (((FLG>>0)&_2BITS) != 0) return (size_t)-ERROR_GENERIC; /* Reserved bits */
- if (((BD>>7)&_1BIT) != 0) return (size_t)-ERROR_GENERIC; /* Reserved bit */
- if (blockSizeID < 4) return (size_t)-ERROR_GENERIC; /* 4-7 only supported values for the time being */
- if (((BD>>0)&_4BITS) != 0) return (size_t)-ERROR_GENERIC; /* Reserved bits */
+ if (version != 1) return (size_t)-ERROR_version_wrong; /* Version Number, only supported value */
+ if (blockChecksumFlag != 0) return (size_t)-ERROR_unsupported_checksum; /* Only supported value for the time being */
+ if (((FLG>>0)&_2BITS) != 0) return (size_t)-ERROR_reserved_flag_set; /* Reserved bits */
+ if (((BD>>7)&_1BIT) != 0) return (size_t)-ERROR_reserved_flag_set; /* Reserved bit */
+ if (blockSizeID < 4) return (size_t)-ERROR_unsupported_block_size; /* 4-7 only supported values for the time being */
+ if (((BD>>0)&_4BITS) != 0) return (size_t)-ERROR_reserved_flag_set; /* Reserved bits */
/* check */
HC = LZ4F_headerChecksum(srcPtr+4, frameHeaderSize-5);
- if (HC != srcPtr[frameHeaderSize-1]) return (size_t)-ERROR_GENERIC; /* Bad header checksum error */
+ if (HC != srcPtr[frameHeaderSize-1]) return (size_t)-ERROR_header_checksum_invalid; /* Bad header checksum error */
/* save */
dctxPtr->frameInfo.blockMode = (blockMode_t)blockMode;
diff --git a/lib/lz4frame_static.h b/lib/lz4frame_static.h
index 2e56400..b608d23 100644
--- a/lib/lz4frame_static.h
+++ b/lib/lz4frame_static.h
@@ -57,6 +57,11 @@ extern "C" {
ITEM(ERROR_wrongSrcPtr) \
ITEM(ERROR_decompressionFailed) \
ITEM(ERROR_checksum_invalid) \
+ ITEM(ERROR_version_wrong) \
+ ITEM(ERROR_unsupported_checksum) \
+ ITEM(ERROR_reserved_flag_set) \
+ ITEM(ERROR_unsupported_block_size) \
+ ITEM(ERROR_header_checksum_invalid) \
ITEM(ERROR_maxCode)
#define LZ4F_GENERATE_ENUM(ENUM) ENUM,