summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2012-04-01 15:06:24 +0000
committerCarl Hetherington <carl@carlh.net>2012-04-01 15:06:24 +0000
commit5de4de613bb19716cf54438076a9dfad9aac15ac (patch)
treed9fb13ab3b751a13f7534f31acf783150a6cee6b
parentc38cbac7e74b3fdf44e5d1883bca9d6bb551806c (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.c5
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);
}