isl_stream_getc: avoid memory leak when realloc fails
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 17 Mar 2011 12:15:25 +0000 (13:15 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 18 Mar 2011 11:12:10 +0000 (12:12 +0100)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_stream.c

index 4c61ee4..6b5e7f7 100644 (file)
@@ -213,10 +213,12 @@ static int isl_stream_getc(struct isl_stream *s)
 static int isl_stream_push_char(struct isl_stream *s, int c)
 {
        if (s->len >= s->size) {
+               char *buffer;
                s->size = (3*s->size)/2;
-               s->buffer = isl_realloc_array(s->ctx, s->buffer, char, s->size);
-               if (!s->buffer)
+               buffer = isl_realloc_array(s->ctx, s->buffer, char, s->size);
+               if (!buffer)
                        return -1;
+               s->buffer = buffer;
        }
        s->buffer[s->len++] = c;
        return 0;