Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gnome-autoar for openSUSE:Factory checked in at 2022-02-11 23:06:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gnome-autoar (Old) and /work/SRC/openSUSE:Factory/.gnome-autoar.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gnome-autoar" Fri Feb 11 23:06:44 2022 rev:15 rq:953713 version:0.4.3 Changes: -------- --- /work/SRC/openSUSE:Factory/gnome-autoar/gnome-autoar.changes 2022-01-09 22:50:09.743283418 +0100 +++ /work/SRC/openSUSE:Factory/.gnome-autoar.new.1956/gnome-autoar.changes 2022-02-11 23:07:09.606564284 +0100 @@ -1,0 +2,9 @@ +Fri Feb 11 09:18:01 UTC 2022 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 0.4.3: + + Prevent NULL dereference when extracting to root. + + Do not include basename in error messages. + + Do not request password when encryption is unsupported. + + Propagate libarchive errors when extraction failed. + +------------------------------------------------------------------- Old: ---- gnome-autoar-0.4.2.tar.xz New: ---- gnome-autoar-0.4.3.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gnome-autoar.spec ++++++ --- /var/tmp/diff_new_pack.AkTBDE/_old 2022-02-11 23:07:10.014565418 +0100 +++ /var/tmp/diff_new_pack.AkTBDE/_new 2022-02-11 23:07:10.018565429 +0100 @@ -17,7 +17,7 @@ Name: gnome-autoar -Version: 0.4.2 +Version: 0.4.3 Release: 0 Summary: Automatic archives creating and extracting library License: LGPL-2.0-or-later @@ -92,9 +92,9 @@ %build %meson \ - -Dvapi=true \ - -Dgtk_doc=true \ - -Dtests=true \ + -D vapi=true \ + -D gtk_doc=true \ + -D tests=true \ %{nil} %meson_build ++++++ gnome-autoar-0.4.2.tar.xz -> gnome-autoar-0.4.3.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-autoar-0.4.2/NEWS new/gnome-autoar-0.4.3/NEWS --- old/gnome-autoar-0.4.2/NEWS 2022-01-07 10:49:41.688870400 +0100 +++ new/gnome-autoar-0.4.3/NEWS 2022-02-11 09:37:04.637689600 +0100 @@ -1,3 +1,9 @@ +Major changes in 0.4.3: +* Prevent NULL dereference when extracting to root (Ondrej Holy) +* Do not include basename in error messages (Ondrej Holy) +* Do not request password when encryption is unsupported (Ignacy Kuchci??ski) +* Propagate libarchive errors when extraction failed (Ignacy Kuchci??ski) + Major changes in 0.4.2: * Fix extraction to root directory (Ondrej Holy) * Fix extraction of raw format archives (Ondrej Holy) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-autoar-0.4.2/gnome-autoar/autoar-extractor.c new/gnome-autoar-0.4.3/gnome-autoar/autoar-extractor.c --- old/gnome-autoar-0.4.2/gnome-autoar/autoar-extractor.c 2022-01-07 10:49:41.690870500 +0100 +++ new/gnome-autoar-0.4.3/gnome-autoar/autoar-extractor.c 2022-02-11 09:37:04.640689600 +0100 @@ -97,7 +97,6 @@ #define BUFFER_SIZE (64 * 1024) #define NOT_AN_ARCHIVE_ERRNO 2013 #define EMPTY_ARCHIVE_ERRNO 2014 -#define INCORRECT_PASSPHRASE_ERRNO 2015 typedef struct _GFileAndInfo GFileAndInfo; @@ -992,11 +991,13 @@ { GFile *parent; parent = g_file_get_parent (dest); - if (parent && !g_file_query_exists (parent, self->cancellable)) - g_file_make_directory_with_parents (parent, - self->cancellable, - NULL); - g_object_unref (parent); + if (parent) { + if (!g_file_query_exists (parent, self->cancellable)) + g_file_make_directory_with_parents (parent, + self->cancellable, + NULL); + g_object_unref (parent); + } } info = g_file_info_new (); @@ -1172,12 +1173,9 @@ autoar_extractor_signal_progress (self); } - if (r == ARCHIVE_FAILED) { + if (r != ARCHIVE_EOF) { if (self->error == NULL) { - self->error = g_error_new (AUTOAR_EXTRACTOR_ERROR, - INCORRECT_PASSPHRASE_ERRNO, - "%s", - archive_error_string (a)); + self->error = autoar_common_g_error_new_a (a, NULL); } g_output_stream_close (ostream, self->cancellable, NULL); g_object_unref (ostream); @@ -1658,18 +1656,16 @@ r = libarchive_create_read_object (TRUE, self, &a); if (r != ARCHIVE_OK) { if (self->error == NULL) - self->error = autoar_common_g_error_new_a (a, self->source_basename); + self->error = autoar_common_g_error_new_a (a, NULL); return; } else if (archive_filter_count (a) <= 1){ /* If we only use raw format and filter count is one, libarchive will * not do anything except for just copying the source file. We do not * want this thing to happen because it does unnecesssary copying. */ if (self->error == NULL) - self->error = g_error_new (AUTOAR_EXTRACTOR_ERROR, - NOT_AN_ARCHIVE_ERRNO, - "\'%s\': %s", - self->source_basename, - "not an archive"); + self->error = g_error_new_literal (AUTOAR_EXTRACTOR_ERROR, + NOT_AN_ARCHIVE_ERRNO, + "not an archive"); return; } self->use_raw_format = TRUE; @@ -1688,7 +1684,14 @@ return; } - if (archive_entry_is_encrypted (entry)) { + /* The password is requested only for the ZIP format to avoid showing + * password prompt for 7ZIP/RAR, where archive_entry_is_encrypted resp. + * archive_entry_is_metadata_encrypted returns TRUE, but followup + * archive_read_data_block resp. archive_read_next_header call leads to + * an error. See https://github.com/libarchive/libarchive/issues/1662. + */ + if (archive_entry_is_encrypted (entry) && + archive_format (a) == ARCHIVE_FORMAT_ZIP) { autoar_extractor_request_passphrase (self); if (g_cancellable_is_cancelled (self->cancellable)) { archive_read_free (a); @@ -1725,22 +1728,19 @@ archive_read_data_skip (a); } - if (self->files_list == NULL) { + if (r != ARCHIVE_EOF) { if (self->error == NULL) { - self->error = g_error_new (AUTOAR_EXTRACTOR_ERROR, - EMPTY_ARCHIVE_ERRNO, - "\'%s\': %s", - self->source_basename, - "empty archive"); + self->error = autoar_common_g_error_new_a (a, NULL); } archive_read_free (a); return; } - if (r != ARCHIVE_EOF) { + if (self->files_list == NULL) { if (self->error == NULL) { - self->error = - autoar_common_g_error_new_a (a, self->source_basename); + self->error = g_error_new_literal (AUTOAR_EXTRACTOR_ERROR, + EMPTY_ARCHIVE_ERRNO, + "empty archive"); } archive_read_free (a); return; @@ -1877,8 +1877,7 @@ r = libarchive_create_read_object (self->use_raw_format, self, &a); if (r != ARCHIVE_OK) { if (self->error == NULL) { - self->error = - autoar_common_g_error_new_a (a, self->source_basename); + self->error = autoar_common_g_error_new_a (a, NULL); } archive_read_free (a); return; @@ -1999,8 +1998,7 @@ if (r != ARCHIVE_EOF) { if (self->error == NULL) { - self->error = - autoar_common_g_error_new_a (a, self->source_basename); + self->error = autoar_common_g_error_new_a (a, NULL); } archive_read_free (a); return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gnome-autoar-0.4.2/meson.build new/gnome-autoar-0.4.3/meson.build --- old/gnome-autoar-0.4.2/meson.build 2022-01-07 10:49:41.691870500 +0100 +++ new/gnome-autoar-0.4.3/meson.build 2022-02-11 09:37:04.641689500 +0100 @@ -3,7 +3,7 @@ project( 'gnome-autoar', 'c', - version: '0.4.2', + version: '0.4.3', license: 'LGPL2.1+', default_options: 'buildtype=debugoptimized', meson_version: '>= 0.56.0',