summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Teich <markus.teich@stusta.mhn.de>2015-11-11 19:09:13 +0100
committerMarkus Teich <markus.teich@stusta.mhn.de>2015-11-11 19:09:13 +0100
commitd7eac23083be2278327e94255a182a221a0df273 (patch)
tree5ac4355b31a892bdd1dde29cba84a87d5a854036
parentb23121b4aab274bd8e41d81145579ff93ba9a8f6 (diff)
fix more memory leaks
-rw-r--r--sent.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sent.c b/sent.c
index 7a85a3f..8ef7e33 100644
--- a/sent.c
+++ b/sent.c
@@ -142,6 +142,7 @@ Image *pngopen(char *filename)
return NULL;
img = malloc(sizeof(Image));
+ memset(img, 0, sizeof(Image));
if (!(img->png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL,
NULL, NULL))) {
free(img);
@@ -166,6 +167,9 @@ Image *pngopen(char *filename)
void pngfree(Image *img)
{
png_destroy_read_struct(&img->png_ptr, img->info_ptr ? &img->info_ptr : NULL, NULL);
+ free(img->buf);
+ if (img->ximg)
+ XDestroyImage(img->ximg);
free(img);
}
@@ -344,6 +348,8 @@ void cleanup()
XCloseDisplay(xw.dpy);
if (slides) {
for (i = 0; i < slidecount; i++) {
+ if (slides[i].text)
+ free(slides[i].text);
if (slides[i].img)
pngfree(slides[i].img);
}
@@ -408,8 +414,6 @@ void load(FILE *fp)
slides[i].img = 0;
i++;
}
- if (slides)
- slides[i].text = NULL;
slidecount = i;
}