evas: fix CID 1102547 - Resource leak

If all rectangle are clipped out, it is perfectly possible to return
no rectangle, this would lead to a possible leak.
This commit is contained in:
Cedric BAIL 2013-10-14 13:37:50 +02:00
parent 1c1b48ca64
commit 15b9a640ac
1 changed files with 7 additions and 3 deletions

View File

@ -939,14 +939,14 @@ evas_common_tilebuf_get_render_rects(Tilebuf *tb)
}
return rects;
}
rbuf = malloc(sizeof(Tilebuf_Rect) * num);
if (!rbuf) return NULL;
for (i = 0, n = tb->rects.head; n; n = n->next)
{
rect_t cur;
cur = ((rect_node_t *)n)->rect;
RECTS_CLIP_TO_RECT(cur.left, cur.top, cur.width, cur.height,
0, 0, tb->outbuf_w, tb->outbuf_h);
@ -966,6 +966,10 @@ evas_common_tilebuf_get_render_rects(Tilebuf *tb)
i++;
}
}
// It is possible that due to the clipping we do not return any rectangle here.
if (!rects) free(rbuf);
return rects;
}