summaryrefslogtreecommitdiff
path: root/progs/util
diff options
context:
space:
mode:
authorVinson Lee <vlee@vmware.com>2009-11-20 11:22:13 -0800
committerVinson Lee <vlee@vmware.com>2009-12-03 17:08:48 -0800
commit0a6acecb35aa5701ee82cf17c2561c172612cb6e (patch)
tree843332cde5fa07cae65e83ff11e0db4beed9b6ca /progs/util
parent305d4f147ea86d87706dbaf2caad6a131c59fe80 (diff)
progs/util: Fix memory leak if malloc fails in RawImageOpen.
(cherry picked from commit d36cb2396c942f05ba56c5b899792a507bb0f0fd)
Diffstat (limited to 'progs/util')
-rw-r--r--progs/util/readtex.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/progs/util/readtex.c b/progs/util/readtex.c
index 3922998fd5..1e1183cf9a 100644
--- a/progs/util/readtex.c
+++ b/progs/util/readtex.c
@@ -130,6 +130,12 @@ static rawImageRec *RawImageOpen(const char *fileName)
if (raw->tmp == NULL || raw->tmpR == NULL || raw->tmpG == NULL ||
raw->tmpB == NULL) {
fprintf(stderr, "Out of memory!\n");
+ free(raw->tmp);
+ free(raw->tmpR);
+ free(raw->tmpG);
+ free(raw->tmpB);
+ free(raw->tmpA);
+ free(raw);
return NULL;
}
@@ -139,6 +145,14 @@ static rawImageRec *RawImageOpen(const char *fileName)
raw->rowSize = (GLint *)malloc(x);
if (raw->rowStart == NULL || raw->rowSize == NULL) {
fprintf(stderr, "Out of memory!\n");
+ free(raw->tmp);
+ free(raw->tmpR);
+ free(raw->tmpG);
+ free(raw->tmpB);
+ free(raw->tmpA);
+ free(raw->rowStart);
+ free(raw->rowSize);
+ free(raw);
return NULL;
}
raw->rleEnd = 512 + (2 * x);