Fixed zero length allocation.
authorArmin Novak <armin.novak@thincast.com>
Tue, 1 Sep 2015 09:57:22 +0000 (11:57 +0200)
committerArmin Novak <armin.novak@thincast.com>
Tue, 1 Sep 2015 10:25:44 +0000 (12:25 +0200)
libfreerdp/codec/rfx.c

index c4ba2d3..f05c013 100644 (file)
@@ -1552,12 +1552,20 @@ skip_encoding_loop:
 
        if (success && message->numTiles != maxNbTiles)
        {
-               void* pmem = realloc((void*) message->tiles, sizeof(RFX_TILE*) * message->numTiles);
+               if (message->numTiles > 0)
+               {
+                       void* pmem = realloc((void*) message->tiles, sizeof(RFX_TILE*) * message->numTiles);
 
-               if (pmem)
-                       message->tiles = (RFX_TILE**) pmem;
+                       if (pmem)
+                               message->tiles = (RFX_TILE**) pmem;
+                       else
+                               success = FALSE;
+               }
                else
+               {
+                       free(message->tiles);
                        success = FALSE;
+               }
        }
 
        /* when using threads ensure all computations are done */