VP8[L]GetInfo: check input pointers

validate data before using & width/height before assigning.

Change-Id: I0872e80fcbfea295d7c633b0d4cb7809e1d1883b
This commit is contained in:
James Zern 2012-05-02 12:38:10 -07:00
parent 29e3f7ec75
commit 5c5be8ba69
2 changed files with 4 additions and 4 deletions

View File

@ -84,7 +84,7 @@ int VP8SetError(VP8Decoder* const dec,
int VP8GetInfo(const uint8_t* data, size_t data_size, size_t chunk_size, int VP8GetInfo(const uint8_t* data, size_t data_size, size_t chunk_size,
int* width, int* height) { int* width, int* height) {
if (data_size < 10) { if (data == NULL || data_size < VP8_FRAME_HEADER_SIZE) {
return 0; // not enough data return 0; // not enough data
} }
// check signature // check signature

View File

@ -96,7 +96,7 @@ static int ReadImageSize(VP8LBitReader* const br,
int VP8LGetInfo(const uint8_t* data, size_t data_size, int VP8LGetInfo(const uint8_t* data, size_t data_size,
int* width, int* height) { int* width, int* height) {
if (data_size < kHeaderBytes) { if (data == NULL || data_size < kHeaderBytes) {
return 0; // not enough data return 0; // not enough data
} else { } else {
int w, h; int w, h;
@ -105,8 +105,8 @@ int VP8LGetInfo(const uint8_t* data, size_t data_size,
if (!ReadImageSize(&br, &w, &h)) { if (!ReadImageSize(&br, &w, &h)) {
return 0; return 0;
} }
*width = w; if (width != NULL) *width = w;
*height = h; if (height != NULL) *height = h;
return 1; return 1;
} }
} }