Patch from Scott McKellar:
authormiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Tue, 1 Jan 2008 01:56:28 +0000 (01:56 +0000)
committermiker <miker@9efc2488-bf62-4759-914b-345cdb29e865>
Tue, 1 Jan 2008 01:56:28 +0000 (01:56 +0000)
1. Plugs a memory leak in file_to_string().  If we failed to open the
file, we were returning without freeing the growing_buffer that held
the file name.

2. Replaces a couple of calls to buffer_data() with calls to
buffer_release().

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1195 9efc2488-bf62-4759-914b-345cdb29e865

src/libopensrf/utils.c

index cffaeca..4b156bb 100644 (file)
@@ -408,9 +408,7 @@ char* uescape( const char* string, int size, int full_escape ) {
                idx++;
        }
 
                idx++;
        }
 
-       char* d = buffer_data(buf);
-       buffer_free(buf);
-       return d;
+       return buffer_release(buf);
 }
 
 
 }
 
 
@@ -469,6 +467,7 @@ char* file_to_string(const char* filename) {
        FILE* file = fopen(filename, "r");
        if(!file) {
                osrfLogError( OSRF_LOG_MARK, "Unable to open file [%s]", filename );
        FILE* file = fopen(filename, "r");
        if(!file) {
                osrfLogError( OSRF_LOG_MARK, "Unable to open file [%s]", filename );
+               buffer_free(gb);
                return NULL;
        }
 
                return NULL;
        }
 
@@ -479,9 +478,7 @@ char* file_to_string(const char* filename) {
 
        fclose(file);
 
 
        fclose(file);
 
-       char* data = buffer_data(gb);
-       buffer_free(gb);
-       return data;
+       return buffer_release(gb);
 }
 
 
 }