Control: tags -1 confirmed moreinfo

On 2021-03-20 21:58:39 +0000, Simon McVittie wrote:
> On Sat, 20 Mar 2021 at 17:08:14 +0000, Simon McVittie wrote:
> >   [x] attach debdiff against the package in testing
> >       (as with the recent mutter and gnome-shell unblocks, to minimize
> >       noise this is a diff between patched trees, excluding the patches
> >       themselves)
> 
> Sorry, really attached now.

Thanks, please go ahead and let us know once it reached unstable.

Cheers

> 
>     smcv

> git diff archive/debian/2.66.7-2..patch-queue/debian/master | filterdiff -p1 
> --exclude 'debian/patches/*.patch'
> 
> diff --git a/NEWS b/NEWS
> index 0f0a6a28b..d4a4703d2 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -1,3 +1,15 @@
> +Overview of changes in GLib 2.66.8
> +==================================
> +
> +* Fix a security issue when using `g_file_replace()` with
> +  `G_FILE_CREATE_REPLACE_DESTINATION` (#2325)
> +
> +* Bugs fixed:
> + - #2325 file-roller symlink attack
> + - !1982 Backport !2325 “file-roller symlink attack” to glib-2-66
> + - !1990 Backport !1976 “Use the right permissions for directory watching on 
> Win32” to glib-2-66
> +
> +
>  Overview of changes in GLib 2.66.7
>  ==================================
>  
> diff --git a/debian/changelog b/debian/changelog
> index eefd875a6..80c0657ef 100644
> --- a/debian/changelog
> +++ b/debian/changelog
> @@ -1,3 +1,23 @@
> +glib2.0 (2.66.8-1) unstable; urgency=medium
> +
> +  * d/watch: Only watch for 2.66.x versions.
> +    2.68.0 has been released but will not be in bullseye.
> +  * New upstream release
> +    - Functionally equivalent to 2.66.7-2, except for the version number
> +      and a change to Windows-specific code that is not used in Debian
> +  * Drop patches that were included in the new upstream release
> +  * d/p/glocalfileoutputstream-Tidy-up-error-handling.patch:
> +    Add patch from upstream to clean up error handling.
> +    After the fix for #984969, this function could end up calling close(-1),
> +    which is harmless but gets flagged as an error by static analysis and
> +    by error-checking instrumentation. Fixing this will prevent it from
> +    obscuring real errors.
> +  * Add CVE references in recent changelog entries.
> +    CVE IDs for the vulnerabilities were not available at the time they were
> +    fixed, but now they are.
> +
> + -- Simon McVittie <s...@debian.org>  Sat, 20 Mar 2021 15:35:19 +0000
> +
>  glib2.0 (2.66.7-2) unstable; urgency=medium
>  
>    * d/changelog: Add bug numbers for integer overflows in previous versions
> @@ -6,7 +26,7 @@ glib2.0 (2.66.7-2) unstable; urgency=medium
>      replace a path that is a dangling symlink, previously it would have also
>      created the target of the symlink as an empty file, which could
>      conceivably be security-sensitive if the symlink is attacker-controlled.
> -    (Closes: #984969)
> +    (Closes: #984969; CVE-2021-28153)
>  
>   -- Simon McVittie <s...@debian.org>  Thu, 11 Mar 2021 10:23:38 +0000
>  
> @@ -16,7 +36,7 @@ glib2.0 (2.66.7-1) unstable; urgency=high
>      - Fix another regression caused by the GHSL-2021-045 fixes in 2.66.6
>      - Warn and fail on integer overflow in g_byte_array_new_take()
>        for arrays larger than G_MAXUINT
> -      (Closes: #982779; similar to GHSL-2021-045)
> +      (Closes: #982779; CVE-2021-27218)
>      - Disallow using currently-undefined D-Bus connection or server flags,
>        to prevent forward-compatibility problems with new security-sensitive
>        flags that are likely to be introduced in GLib 2.68
> @@ -41,7 +61,7 @@ glib2.0 (2.66.6-1) unstable; urgency=high
>  
>    * New upstream release
>      - Fix various integer overflows, some of them potentially exploitable
> -      (Closes: #982778, GHSL-2021-045)
> +      (Closes: #982778; CVE-2021-27219, GHSL-2021-045)
>  
>   -- Simon McVittie <s...@debian.org>  Thu, 04 Feb 2021 20:24:20 +0000
>  
> diff --git 
> a/debian/patches/glocalfileoutputstream-Tidy-up-error-handling.patch 
> b/debian/patches/glocalfileoutputstream-Tidy-up-error-handling.patch
> new file mode 100644
> index 000000000..04f040d40
> diff --git a/debian/patches/series b/debian/patches/series
> index 772de8095..8e7842b2f 100644
> --- a/debian/patches/series
> +++ b/debian/patches/series
> @@ -1,10 +1,6 @@
> -glocalfileoutputstream-Fix-a-typo-in-a-comment.patch
> -tests-Stop-using-g_test_bug_base-in-file-tests.patch
> -glocalfileoutputstream-Factor-out-a-flag-check.patch
> -glocalfileoutputstream-Fix-CREATE_REPLACE_DESTINATION-wit.patch
> -glocalfileoutputstream-Add-a-missing-O_CLOEXEC-flag-to-re.patch
>  glib-tests-fileutils-Make-more-use-of-g_assert_no_errno.patch
>  glib-tests-fileutils-Fix-expectations-when-running-as-roo.patch
> +glocalfileoutputstream-Tidy-up-error-handling.patch
>  01_gettext-desktopfiles.patch
>  0001-timer-test-use-volatile-for-locals.patch
>  gwakeuptest-Be-less-parallel-unless-invoked-with-m-slow.patch
> diff --git a/debian/watch b/debian/watch
> index f028879b9..5a5e3cbab 100644
> --- a/debian/watch
> +++ b/debian/watch
> @@ -1,3 +1,3 @@
>  version=4
> -https://download.gnome.org/sources/glib/([\d\.]+[02468])/ \
> +https://download.gnome.org/sources/glib/2.66/ \
>       glib@ANY_VERSION@\.tar\.xz
> diff --git a/gio/glocalfileoutputstream.c b/gio/glocalfileoutputstream.c
> index 4c512ea81..78d3e85a6 100644
> --- a/gio/glocalfileoutputstream.c
> +++ b/gio/glocalfileoutputstream.c
> @@ -943,7 +943,7 @@ handle_overwrite_open (const char    *filename,
>                  _("Error when getting information for file “%s”: %s"),
>                  display_name, g_strerror (errsv));
>        g_free (display_name);
> -      goto err_out;
> +      goto error;
>      }
>    
>    /* not a regular file */
> @@ -955,7 +955,7 @@ handle_overwrite_open (const char    *filename,
>                                 G_IO_ERROR,
>                                 G_IO_ERROR_IS_DIRECTORY,
>                                 _("Target file is a directory"));
> -          goto err_out;
> +          goto error;
>          }
>        else if (!is_symlink ||
>  #ifdef S_ISLNK
> @@ -969,7 +969,7 @@ handle_overwrite_open (const char    *filename,
>                               G_IO_ERROR,
>                               G_IO_ERROR_NOT_REGULAR_FILE,
>                               _("Target file is not a regular file"));
> -          goto err_out;
> +          goto error;
>          }
>      }
>    
> @@ -983,7 +983,7 @@ handle_overwrite_open (const char    *filename,
>                                 G_IO_ERROR_WRONG_ETAG,
>                                 _("The file was externally modified"));
>         g_free (current_etag);
> -       goto err_out;
> +          goto error;
>       }
>        g_free (current_etag);
>      }
> @@ -1078,7 +1078,7 @@ handle_overwrite_open (const char    *filename,
>                                 G_IO_ERROR_CANT_CREATE_BACKUP,
>                                 _("Backup file creation failed"));
>         g_free (backup_filename);
> -       goto err_out;
> +          goto error;
>       }
>  
>        bfd = g_open (backup_filename,
> @@ -1092,7 +1092,7 @@ handle_overwrite_open (const char    *filename,
>                                 G_IO_ERROR_CANT_CREATE_BACKUP,
>                                 _("Backup file creation failed"));
>         g_free (backup_filename);
> -       goto err_out;
> +          goto error;
>       }
>  
>        /* If needed, Try to set the group of the backup same as the
> @@ -1109,7 +1109,7 @@ handle_overwrite_open (const char    *filename,
>         g_unlink (backup_filename);
>         g_close (bfd, NULL);
>         g_free (backup_filename);
> -       goto err_out;
> +          goto error;
>       }
>        
>        if ((_g_stat_gid (&original_stat) != _g_stat_gid (&tmp_statbuf))  &&
> @@ -1126,7 +1126,7 @@ handle_overwrite_open (const char    *filename,
>             g_unlink (backup_filename);
>             g_close (bfd, NULL);
>             g_free (backup_filename);
> -           goto err_out;
> +              goto error;
>           }
>       }
>  #endif
> @@ -1141,7 +1141,7 @@ handle_overwrite_open (const char    *filename,
>            g_close (bfd, NULL);
>         g_free (backup_filename);
>         
> -       goto err_out;
> +          goto error;
>       }
>        
>        g_close (bfd, NULL);
> @@ -1156,7 +1156,7 @@ handle_overwrite_open (const char    *filename,
>                      g_io_error_from_errno (errsv),
>                      _("Error seeking in file: %s"),
>                      g_strerror (errsv));
> -       goto err_out;
> +          goto error;
>       }
>      }
>  
> @@ -1172,7 +1172,7 @@ handle_overwrite_open (const char    *filename,
>                      g_io_error_from_errno (errsv),
>                      _("Error removing old file: %s"),
>                      g_strerror (errsv));
> -       goto err_out2;
> +          goto error;
>       }
>  
>        if (readable)
> @@ -1189,7 +1189,7 @@ handle_overwrite_open (const char    *filename,
>                      _("Error opening file “%s”: %s"),
>                      display_name, g_strerror (errsv));
>         g_free (display_name);
> -       goto err_out2;
> +          goto error;
>       }
>      }
>    else
> @@ -1207,15 +1207,16 @@ handle_overwrite_open (const char    *filename,
>                        g_io_error_from_errno (errsv),
>                        _("Error truncating file: %s"),
>                        g_strerror (errsv));
> -         goto err_out;
> +            goto error;
>         }
>      }
>      
>    return fd;
>  
> - err_out:
> -  g_close (fd, NULL);
> - err_out2:
> +error:
> +  if (fd >= 0)
> +    g_close (fd, NULL);
> +
>    return -1;
>  }
>  
> diff --git a/gio/win32/gwin32fsmonitorutils.c 
> b/gio/win32/gwin32fsmonitorutils.c
> index e6b7d1dcd..b47124634 100644
> --- a/gio/win32/gwin32fsmonitorutils.c
> +++ b/gio/win32/gwin32fsmonitorutils.c
> @@ -345,7 +345,7 @@ g_win32_fs_monitor_init (GWin32FSMonitorPrivate *monitor,
>      monitor->file_attribs = INVALID_FILE_ATTRIBUTES;
>    monitor->pfni_prev = NULL;
>    monitor->hDirectory = CreateFileW (wdirname_with_long_prefix != NULL ? 
> wdirname_with_long_prefix : monitor->wfullpath_with_long_prefix,
> -                                     FILE_GENERIC_READ | FILE_GENERIC_WRITE,
> +                                     FILE_LIST_DIRECTORY,
>                                       FILE_SHARE_DELETE | FILE_SHARE_READ | 
> FILE_SHARE_WRITE,
>                                       NULL,
>                                       OPEN_EXISTING,
> diff --git a/meson.build b/meson.build
> index aee96566c..740e46b86 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1,5 +1,5 @@
>  project('glib', 'c', 'cpp',
> -  version : '2.66.7',
> +  version : '2.66.8',
>    # NOTE: We keep this pinned at 0.49 because that's what Debian 10 ships
>    meson_version : '>= 0.49.2',
>    default_options : [


-- 
Sebastian Ramacher

Attachment: signature.asc
Description: PGP signature

Reply via email to