forked from bartvdbraak/blender
Fix float buffer of tracking image accessed outside of check that it has been correctly allocated.
Reported by coverity scan.
This commit is contained in:
parent
43268c1997
commit
21e1282265
@ -625,17 +625,17 @@ static ImBuf *make_grayscale_ibuf_copy(ImBuf *ibuf)
|
||||
*/
|
||||
size = (size_t)grayscale->x * (size_t)grayscale->y * sizeof(float);
|
||||
grayscale->channels = 1;
|
||||
if ((grayscale->rect_float = MEM_mapallocN(size, "tracking grayscale image"))) {
|
||||
if ((grayscale->rect_float = MEM_mapallocN(size, "tracking grayscale image")) != NULL) {
|
||||
grayscale->mall |= IB_rectfloat;
|
||||
grayscale->flags |= IB_rectfloat;
|
||||
}
|
||||
|
||||
for (i = 0; i < grayscale->x * grayscale->y; ++i) {
|
||||
const float *pixel = ibuf->rect_float + ibuf->channels * i;
|
||||
for (i = 0; i < grayscale->x * grayscale->y; ++i) {
|
||||
const float *pixel = ibuf->rect_float + ibuf->channels * i;
|
||||
|
||||
grayscale->rect_float[i] = 0.2126f * pixel[0] +
|
||||
0.7152f * pixel[1] +
|
||||
0.0722f * pixel[2];
|
||||
grayscale->rect_float[i] = 0.2126f * pixel[0] +
|
||||
0.7152f * pixel[1] +
|
||||
0.0722f * pixel[2];
|
||||
}
|
||||
}
|
||||
|
||||
return grayscale;
|
||||
@ -653,14 +653,14 @@ static void ibuf_to_float_image(const ImBuf *ibuf, libmv_FloatImage *float_image
|
||||
static ImBuf *float_image_to_ibuf(libmv_FloatImage *float_image)
|
||||
{
|
||||
ImBuf *ibuf = IMB_allocImBuf(float_image->width, float_image->height, 32, 0);
|
||||
size_t size = (size_t)ibuf->x * (size_t)ibuf->y *
|
||||
float_image->channels * sizeof(float);
|
||||
size_t size = (size_t)ibuf->x * (size_t)ibuf->y * float_image->channels * sizeof(float);
|
||||
ibuf->channels = float_image->channels;
|
||||
if ((ibuf->rect_float = MEM_mapallocN(size, "tracking grayscale image"))) {
|
||||
if ((ibuf->rect_float = MEM_mapallocN(size, "tracking grayscale image")) != NULL) {
|
||||
ibuf->mall |= IB_rectfloat;
|
||||
ibuf->flags |= IB_rectfloat;
|
||||
|
||||
memcpy(ibuf->rect_float, float_image->buffer, size);
|
||||
}
|
||||
memcpy(ibuf->rect_float, float_image->buffer, size);
|
||||
return ibuf;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user