diff --git a/src/mux/muxedit.c b/src/mux/muxedit.c index cf3df63a..fdf46d14 100644 --- a/src/mux/muxedit.c +++ b/src/mux/muxedit.c @@ -643,9 +643,9 @@ WebPMuxError WebPMuxAssemble(WebPMux* const mux, // Main RIFF header. PutLE32(data + 0, mktag('R', 'I', 'F', 'F')); - PutLE32(data + 4, (uint32_t)size - CHUNK_HEADER_SIZE); + PutLE32(data + TAG_SIZE, (uint32_t)size - CHUNK_HEADER_SIZE); assert(size == (uint32_t)size); - PutLE32(data + 8, mktag('W', 'E', 'B', 'P')); + PutLE32(data + TAG_SIZE + CHUNK_SIZE_BYTES, mktag('W', 'E', 'B', 'P')); // Chunks. dst = data + RIFF_HEADER_SIZE; diff --git a/src/mux/muxi.h b/src/mux/muxi.h index cbb3b33e..4a52c480 100644 --- a/src/mux/muxi.h +++ b/src/mux/muxi.h @@ -87,6 +87,7 @@ typedef enum { // Maximum chunk payload (data) size such that adding the header and padding // won't overflow an uint32. #define MAX_CHUNK_PAYLOAD (~0U - CHUNK_HEADER_SIZE - 1) +#define CHUNK_SIZE_BYTES 4 #define NIL_TAG 0x00000000u // To signal void chunk. diff --git a/src/mux/muxread.c b/src/mux/muxread.c index fdc8c847..d62fb300 100644 --- a/src/mux/muxread.c +++ b/src/mux/muxread.c @@ -217,9 +217,7 @@ WebPMuxError WebPMuxGetFeatures(const WebPMux* const mux, uint32_t* flags) { return err; } - // TODO(urvang): Add a '#define CHUNK_SIZE_BYTES 4' and use it instead of - // hard-coded value of 4 everywhere. - if (data.size_ < 4) return WEBP_MUX_BAD_DATA; + if (data.size_ < CHUNK_SIZE_BYTES) return WEBP_MUX_BAD_DATA; // All OK. Fill up flags. *flags = GetLE32(data.bytes_); @@ -231,8 +229,9 @@ WebPMuxError WebPMuxGetImage(const WebPMux* const mux, WebPMuxError err; WebPMuxImage* wpi = NULL; - if (mux == NULL || (image == NULL && alpha == NULL)) + if (mux == NULL || (image == NULL && alpha == NULL)) { return WEBP_MUX_INVALID_ARGUMENT; + } err = ValidateForImage(mux); if (err != WEBP_MUX_OK) return err;