ref: 345489c9eca79493261b3936f4e8daaf5588a2f5
parent: 7fe96753d72cde657a162e94b08016f8e74aa775
author: James Zern <[email protected]>
date: Wed Feb 17 09:27:51 EST 2016
vp10/resize: add missing alloc checks Change-Id: I96669ddbcdda508a295c68ecf103d10f364e0ad5
--- a/vp10/encoder/resize.c
+++ b/vp10/encoder/resize.c
@@ -461,6 +461,7 @@
int filteredlength = length;
if (!tmpbuf) {
tmpbuf = (uint8_t *)malloc(sizeof(uint8_t) * length);
+ if (tmpbuf == NULL) return;
otmp = tmpbuf;
} else {
otmp = buf;
@@ -520,6 +521,7 @@
uint8_t *tmpbuf = (uint8_t *)malloc(sizeof(uint8_t) *
(width < height ? height : width));
uint8_t *arrbuf = (uint8_t *)malloc(sizeof(uint8_t) * (height + height2));
+ if (intbuf == NULL || tmpbuf == NULL || arrbuf == NULL) goto Error;
assert(width > 0);
assert(height > 0);
assert(width2 > 0);
@@ -532,6 +534,8 @@
resize_multistep(arrbuf, height, arrbuf + height, height2, tmpbuf);
fill_arr_to_col(output + i, out_stride, height2, arrbuf + height);
}
+
+ Error:
free(intbuf);
free(tmpbuf);
free(arrbuf);
@@ -754,6 +758,7 @@
int filteredlength = length;
if (!tmpbuf) {
tmpbuf = (uint16_t *)malloc(sizeof(uint16_t) * length);
+ if (tmpbuf == NULL) return;
otmp = tmpbuf;
} else {
otmp = buf;
@@ -816,6 +821,7 @@
uint16_t *tmpbuf = (uint16_t *)malloc(sizeof(uint16_t) *
(width < height ? height : width));
uint16_t *arrbuf = (uint16_t *)malloc(sizeof(uint16_t) * (height + height2));
+ if (intbuf == NULL || tmpbuf == NULL || arrbuf == NULL) goto Error;
for (i = 0; i < height; ++i) {
highbd_resize_multistep(CONVERT_TO_SHORTPTR(input + in_stride * i), width,
intbuf + width2 * i, width2, tmpbuf, bd);
@@ -827,6 +833,8 @@
highbd_fill_arr_to_col(CONVERT_TO_SHORTPTR(output + i), out_stride, height2,
arrbuf + height);
}
+
+ Error:
free(intbuf);
free(tmpbuf);
free(arrbuf);