summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira <ander.conselvan-de-oliveira@nokia.com>2011-03-23 14:36:22 +0200
committerAnder Conselvan de Oliveira <ander.conselvan-de-oliveira@nokia.com>2011-04-13 11:05:59 +0300
commit1a944260182bb552b954d69f6355c2760d4415df (patch)
treed6572b09d9dc1cc6b8eb4683560e5da5b2900ed1
parentc1c91e9a221a0e762d96cc12a3f189d6e59f4865 (diff)
Fix memory leak with broken bitmap files in XReadBitmapFileData
Bitmap file data is read looping through the lines in the input file. If there is extra data after the bitmap, these lines will be processed and if this data represents another bitmap it will replace the one read before causing the memory allocated for bits to leak. This changes the code to stop processing the file once a bitmap was read. Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan-de-oliveira@nokia.com> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r--src/RdBitF.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/RdBitF.c b/src/RdBitF.c
index 07967ae..ab7d800 100644
--- a/src/RdBitF.c
+++ b/src/RdBitF.c
@@ -216,6 +216,11 @@ XReadBitmapFileData (
*ptr=value;
}
}
+
+ /* If we got to this point, we read a full bitmap file. Break so we don't
+ * start reading another one from the same file and leak the memory
+ * allocated for the previous one. */
+ break;
} /* end while */
fclose(fstream);