Fix memory leak on error condition (#4798).
authorCarl Hetherington <carl@carlh.net>
Sun, 1 Apr 2012 15:06:24 +0000 (15:06 +0000)
committerCarl Hetherington <carl@carlh.net>
Sun, 1 Apr 2012 15:06:24 +0000 (15:06 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@11775 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/evoral/src/libsmf/smf_load.c

index 59ae67b537a0090dda80dfef5bdc43a9394c0583..6da6036ea0e9c92a32a83f481acc58990e84ddf0 100644 (file)
@@ -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);
        }