From bef9d0c827b06b1ad2894a37ee98ee9f00ecca13 Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Sun, 18 Nov 2012 17:54:27 +0000 Subject: [PATCH] misc: fix a few memory leaks and invalid memory accesses. --- caca/file.c | 4 ++-- src/cacaplay.c | 4 +++- tools/makefont.c | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/caca/file.c b/caca/file.c index 317979b..9d2f7b6 100644 --- a/caca/file.c +++ b/caca/file.c @@ -1,6 +1,6 @@ /* * libcaca Colour ASCII-Art library - * Copyright (c) 2006-2010 Sam Hocevar + * Copyright (c) 2006-2012 Sam Hocevar * All Rights Reserved * * This library is free software. It comes without any warranty, to @@ -118,8 +118,8 @@ caca_file_t *caca_file_open(char const *path, const char *mode) if(inflateInit2(&fp->stream, -MAX_WBITS)) { - free(fp); gzclose(fp->gz); + free(fp); seterrno(EINVAL); return NULL; } diff --git a/src/cacaplay.c b/src/cacaplay.c index 5b1bea6..ebbdab5 100644 --- a/src/cacaplay.c +++ b/src/cacaplay.c @@ -1,6 +1,6 @@ /* * cacaplay caca file player - * Copyright (c) 2006-2010 Sam Hocevar + * Copyright (c) 2006-2012 Sam Hocevar * All Rights Reserved * * This program is free software. It comes without any warranty, to @@ -78,6 +78,7 @@ int main(int argc, char **argv) if(n < 0) { fprintf(stderr, "%s: read error\n", argv[0]); + free(buf); return -1; } else if(n == 0) @@ -110,6 +111,7 @@ int main(int argc, char **argv) caca_get_event(dp, CACA_EVENT_KEY_PRESS, NULL, -1); /* Clean up */ + free(buf); close(fd); caca_free_display(dp); diff --git a/tools/makefont.c b/tools/makefont.c index c327280..0be8afc 100644 --- a/tools/makefont.c +++ b/tools/makefont.c @@ -1,6 +1,6 @@ /* * makefont create libcaca font data - * Copyright (c) 2006-2010 Sam Hocevar + * Copyright (c) 2006-2012 Sam Hocevar * All Rights Reserved * * This program is free software. It comes without any warranty, to @@ -337,6 +337,7 @@ int main(int argc, char *argv[]) free(glyph_data); g_object_unref(l); g_object_unref(cx); + g_object_unref(fm); return 0; }