]> granicus.if.org Git - handbrake/commitdiff
merge assorted fixes provided by Rogerio Brito
authorjstebbins <jstebbins.hb@gmail.com>
Tue, 1 May 2012 11:23:36 +0000 (11:23 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Tue, 1 May 2012 11:23:36 +0000 (11:23 +0000)
Pretty much all resource cleanup issues on error condition handling.
Thanks Rogerio!

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4620 b64f7644-9d1e-0410-96f1-a4d463321fa5

gtk/src/callbacks.c
gtk/src/create_resources.c
gtk/src/presets.c
libhb/dvd.c
libhb/muxmkv.c
libhb/ports.c

index ba0d569cc29304daf357b8161697204386180f66..a3b71ebb07a08128000fb7bc55c93b41a3e78606 100644 (file)
@@ -4966,15 +4966,17 @@ ghb_check_update(signal_user_data_t *ud)
        if (host == NULL || appcast == NULL)
                return NULL;
 
-       query = g_strdup_printf( "GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n",
+       query = g_strdup_printf("GET /%s HTTP/1.0\r\nHost: %s\r\n\r\n",
                                                        appcast, host);
 
        ioc = ghb_net_open(ud, host, 80);
        if (ioc == NULL)
-               return NULL;
+               goto free_resources;
 
        g_io_channel_write_chars(ioc, query, strlen(query), &len, &gerror);
        g_io_channel_flush(ioc, &gerror);
+
+free_resources:
        g_free(query);
        g_free(host);
        g_free(appcast);
index 3a979bd87283eb2ad3b7a5c2d006fdc4a51dd83d..ca5ea828b69992e066fbc2b09b7c2415ea961284 100644 (file)
@@ -531,6 +531,7 @@ main(gint argc, gchar *argv[])
 
        gval = ghb_resource_parse_file(file);
        ghb_plist_write_file(dst, gval);
+       fclose(file);
        return 0;
 }
 
index 70b23ed6be50bab8fc7eb8bc0d7669fa9ef77759..cc2f23e8a497bcee61c0ec235f056d9e4a3e05dc 100644 (file)
@@ -431,7 +431,10 @@ presets_find_pos(const GValue *path, gint type, gint *len)
                val = ghb_array_get_nth(path, ii);
                name = g_value_get_string(val);
                indices[ii] = presets_find_element(nested, name);
-               if (indices[ii] == -1) return NULL;
+               if (indices[ii] == -1) {
+                       g_free(indices);
+                       return NULL;
+               }
                dict = ghb_array_get_nth(nested, indices[ii]);
                folder = ghb_value_boolean(preset_dict_get_value(dict, "Folder"));
                nested = NULL;
@@ -1683,6 +1686,7 @@ ghb_presets_list_init(
        if (presets == NULL)
        {
                g_warning("Failed to find parent folder when adding child.");
+               g_free(more_indices);
                return;
        }
        count = ghb_array_len(presets);
index bd167e7753f866541091b4a091aaf729b0827e3d..5dbe85072a036e92cd583ff4927f2c95e1ce0f89 100644 (file)
@@ -146,7 +146,7 @@ hb_dvd_t * hb_dvdread_init( char * path )
 fail:
     if( d->vmg )    ifoClose( d->vmg );
     if( d->reader ) DVDClose( d->reader );
-    free( d );
+    free( e );
     return NULL;
 }
 
index 1140bc5b065dc220abb2025500fbea901c12476d..22715957977d967674f2f0f2f53f848eb39f24e6 100644 (file)
@@ -77,6 +77,7 @@ static int MKVInit( hb_mux_object_t * m )
         hb_error( "Could not create output file, Disk Full?" );
         job->mux_data = NULL;
         *job->die = 1;
+        free(track);
         return 0;
     }
 
@@ -94,8 +95,10 @@ static int MKVInit( hb_mux_object_t * m )
             /* Taken from x264 muxers.c */
             avcC_len = 5 + 1 + 2 + job->config.h264.sps_length + 1 + 2 + job->config.h264.pps_length;
             avcC = malloc(avcC_len);
-            if (avcC == NULL)
+            if (avcC == NULL) {
+                free(track);
                 return -1;
+            }
 
             avcC[0] = 1;
             avcC[1] = job->config.h264.sps[1];      /* AVCProfileIndication */
@@ -158,6 +161,7 @@ static int MKVInit( hb_mux_object_t * m )
         default:
             *job->die = 1;
             hb_error("muxmkv: Unknown video codec: %x", job->vcodec);
+            free(track);
             return 0;
     }
 
index 6ccbaede3775699f31a1d90a69651dad267be414..cec4efd963cfd5d81fe27b1302e694c00473b1cf 100644 (file)
@@ -693,6 +693,7 @@ hb_net_t * hb_net_open( char * address, int port )
         if (iResult != 0)
         {
             hb_log("WSAStartup failed: %d", iResult);
+            free(n);
             return NULL;
         }
         winsock_init = 1;