diff options
author | Carl Hetherington <carl@carlh.net> | 2012-04-01 15:06:24 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2012-04-01 15:06:24 +0000 |
commit | 5de4de613bb19716cf54438076a9dfad9aac15ac (patch) | |
tree | d9fb13ab3b751a13f7534f31acf783150a6cee6b | |
parent | c38cbac7e74b3fdf44e5d1883bca9d6bb551806c (diff) |
Fix memory leak on error condition (#4798).
git-svn-id: svn://localhost/ardour2/branches/3.0@11775 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | libs/evoral/src/libsmf/smf_load.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libs/evoral/src/libsmf/smf_load.c b/libs/evoral/src/libsmf/smf_load.c index 59ae67b537..6da6036ea0 100644 --- a/libs/evoral/src/libsmf/smf_load.c +++ b/libs/evoral/src/libsmf/smf_load.c @@ -833,13 +833,14 @@ load_file_into_buffer(void **file_buffer, size_t *file_buffer_length, FILE* stre *file_buffer = malloc(*file_buffer_length); if (*file_buffer == NULL) { g_critical("malloc(3) failed: %s", strerror(errno)); - + return (-5); } if (fread(*file_buffer, 1, *file_buffer_length, stream) != *file_buffer_length) { g_critical("fread(3) failed: %s", strerror(errno)); - + free (*file_buffer); + *file_buffer = NULL; return (-6); } |