[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#688512: unblock or tpu: glib2.0/2.33.12+really2.32.4-1



Control: tags -1 moreinfo

On 2012-09-25 11:03, Josselin Mouette wrote:
> This bug didn’t make it through the list at first because the diff is
> too large.
> 
> Le dimanche 23 septembre 2012 à 13:16 +0200, Josselin Mouette a écrit : 
>> Package: release.debian.org
>> Severity: normal
>> User: release.debian.org@packages.debian.org
>> Usertags: unblock
>>
>> Hi,
>>
>> I just uploaded a new glib2.0 package to unstable. The differences to 
>> testing are:
>>
>>   [...]
>>
>>
>> The full diff is attached, stripped of the autogenerated parts. It is 
>> quite large, but most of it consists in documentation improvements and 
>> function decorators. There are also quite a number of bugs fixed - the 
>> release is bugfix only so large changes are not included.
>>
>> In order to avoid having the ugly version number in a release, I propose 
>> to let this version age for 10 days in unstable, then re-upload it to 
>> testing with the 2.32.4-1 version number.
>>
>> Thanks for considering,
> 

Hi,

The diff looks mostly reasonable, though I have one case where it seems
to me that the new version introduces a leak (see attached glib.leak).

Other than that, I think it may have to wait until the next d-i beta is
out.  Personally I do not mind the extra couple of days in unstable as
the diff is rather large and I could quite possibly have missed something.

Also, on the part of (re-)uploading it as 2.32.{4,5}-1 via t-p-u.  I am
not sure it is an acceptable use of t-p-u, so my default would be "no"
on this.

~Niels

It seems to me that stderr_child may be leaked when goto cleanup paths are taken?

diff -Nru glib2.0-2.32.3/gio/glib-compile-resources.c glib2.0-2.33.12+really2.32.4/gio/glib-compile-resources.c
--- glib2.0-2.32.3/gio/glib-compile-resources.c 2012-03-29 22:43:04.000000000 +0000
+++ glib2.0-2.33.12+really2.32.4/gio/glib-compile-resources.c   2012-07-14 20:33:11.000000000 +0000
@@ -272,6 +272,7 @@
       if (state->preproc_options)
         {
           gchar **options;
+          gchar *stderr_child = NULL;
           guint i;
           gboolean xml_stripblanks = FALSE;
           gboolean to_pixdata = FALSE;
@@ -324,9 +325,8 @@
               g_assert (argc <= G_N_ELEMENTS (argv));
 
               if (!g_spawn_sync (NULL /* cwd */, argv, NULL /* envv */,
-                                 G_SPAWN_STDOUT_TO_DEV_NULL |
-                                 G_SPAWN_STDERR_TO_DEV_NULL,
-                                 NULL, NULL, NULL, NULL, &status, &my_error))
+                                 G_SPAWN_STDOUT_TO_DEV_NULL,
+                                 NULL, NULL, NULL, &stderr_child, &status, &my_error))
                 {
                   g_propagate_error (error, my_error);
                   goto cleanup;
@@ -334,12 +334,13 @@
 #ifdef HAVE_SYS_WAIT_H
               if (!WIFEXITED (status) || WEXITSTATUS (status) != 0)
                 {
-                  g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                                      _("Error processing input file with xmllint"));
+                  g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                               _("Error processing input file with xmllint:\n%s"), stderr_child);
                   goto cleanup;
                 }
 #endif
 
+              g_free (stderr_child);
               g_free (real_file);
               real_file = g_strdup (tmp_file);
             }
@@ -347,6 +348,7 @@
           if (to_pixdata)
             {
               gchar *argv[4];
+              gchar *stderr_child = NULL;
               int status, fd, argc;
 
               if (gdk_pixbuf_pixdata == NULL)
@@ -379,9 +381,8 @@
               g_assert (argc <= G_N_ELEMENTS (argv));
 
               if (!g_spawn_sync (NULL /* cwd */, argv, NULL /* envv */,
-                                 G_SPAWN_STDOUT_TO_DEV_NULL |
-                                 G_SPAWN_STDERR_TO_DEV_NULL,
-                                 NULL, NULL, NULL, NULL, &status, &my_error))
+                                 G_SPAWN_STDOUT_TO_DEV_NULL,
+                                 NULL, NULL, NULL, &stderr_child, &status, &my_error))
                 {
                   g_propagate_error (error, my_error);
                   goto cleanup;
@@ -389,12 +390,13 @@
 #ifdef HAVE_SYS_WAIT_H
               if (!WIFEXITED (status) || WEXITSTATUS (status) != 0)
                 {
-                  g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
-                                      _("Error processing input file with to-pixdata"));
+                  g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                              _("Error processing input file with to-pixdata:\n%s"), stderr_child);
                   goto cleanup;
                 }
 #endif
 
+              g_free (stderr_child);
               g_free (real_file);
               real_file = g_strdup (tmp_file2);
             }
<end of chunks for this file>

Reply to: