Hello community, here is the log from the commit of package glib2 for openSUSE:Factory checked in at 2019-06-24 21:48:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/glib2 (Old) and /work/SRC/openSUSE:Factory/.glib2.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "glib2" Mon Jun 24 21:48:16 2019 rev:211 rq:709085 version:2.60.4 Changes: -------- --- /work/SRC/openSUSE:Factory/glib2/glib2.changes 2019-06-02 15:12:37.942175668 +0200 +++ /work/SRC/openSUSE:Factory/.glib2.new.4615/glib2.changes 2019-06-24 21:48:18.223870724 +0200 @@ -1,0 +2,13 @@ +Tue Jun 11 07:14:22 UTC 2019 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 2.60.4: + + Fixes to improved network status detection with NetworkManager. + + Leak fixes to some `glib-genmarshal` generated code. + + Further fixes to the Happy Eyeballs (RFC 8305) implementation. + + File system permissions fix to clamp down permissions in a + small time window when copying files (CVE-2019-12450). + + Bugs fixed: glgo#GNOME/GLib#1755, glgo#GNOME/GLib#1788, + glgo#GNOME/GLib#1792, glgo#GNOME/GLib#1793, + glgo#GNOME/GLib#1795, glgo#GNOME/GLib!865, glgo#GNOME/GLib!878. + +------------------------------------------------------------------- Old: ---- glib-2.60.3.tar.xz New: ---- glib-2.60.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ glib2.spec ++++++ --- /var/tmp/diff_new_pack.KYtqdO/_old 2019-06-24 21:48:20.867872768 +0200 +++ /var/tmp/diff_new_pack.KYtqdO/_new 2019-06-24 21:48:20.903872796 +0200 @@ -19,7 +19,7 @@ # systemtap is only offered as build-option, but not enabled, as it causes a build cycle %bcond_with systemtap Name: glib2 -Version: 2.60.3 +Version: 2.60.4 Release: 0 Summary: General-Purpose Utility Library License: LGPL-2.1-or-later ++++++ glib-2.60.3.tar.xz -> glib-2.60.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/NEWS new/glib-2.60.4/NEWS --- old/glib-2.60.3/NEWS 2019-05-21 17:59:04.000000000 +0200 +++ new/glib-2.60.4/NEWS 2019-06-10 19:47:20.000000000 +0200 @@ -1,3 +1,25 @@ +Overview of changes in GLib 2.60.4 +================================== + +* Fixes to improved network status detection with NetworkManager (#1788) + +* Leak fixes to some `glib-genmarshal` generated code (#1793) + +* Further fixes to the Happy Eyeballs (RFC 8305) implementation (!865) + +* File system permissions fix to clamp down permissions in a small time window + when copying files (CVE-2019-12450, !876) + +* Bugs fixed: + - #1755 Please revert #535 gmacros: Try to use the standard __func__ first in G_STRFUNC + - #1788 GNetworkMonitor claims I am offline + - #1792 glib-genmarshal generated valist marshal does not respect static scope for some types + - #1793 glib-genmarshal generates wrong code for va marshaler for VARIANT type + - #1795 Fix mingw32 CI on older branches + - !865 gnetworkaddress: fix "happy eyeballs" logic + - !878 Backport !876 “gfile: Limit access to files when copying” to glib-2-60 + + Overview of changes in GLib 2.60.3 ================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/gio/gfile.c new/glib-2.60.4/gio/gfile.c --- old/glib-2.60.3/gio/gfile.c 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/gio/gfile.c 2019-06-10 19:47:20.000000000 +0200 @@ -3284,12 +3284,12 @@ out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)), FALSE, NULL, flags & G_FILE_COPY_BACKUP, - G_FILE_CREATE_REPLACE_DESTINATION, - info, + G_FILE_CREATE_REPLACE_DESTINATION | + G_FILE_CREATE_PRIVATE, info, cancellable, error); else out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)), - FALSE, 0, info, + FALSE, G_FILE_CREATE_PRIVATE, info, cancellable, error); } else if (flags & G_FILE_COPY_OVERWRITE) @@ -3297,12 +3297,13 @@ out = (GOutputStream *)g_file_replace (destination, NULL, flags & G_FILE_COPY_BACKUP, - G_FILE_CREATE_REPLACE_DESTINATION, + G_FILE_CREATE_REPLACE_DESTINATION | + G_FILE_CREATE_PRIVATE, cancellable, error); } else { - out = (GOutputStream *)g_file_create (destination, 0, cancellable, error); + out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error); } if (!out) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/gio/gnetworkaddress.c new/glib-2.60.4/gio/gnetworkaddress.c --- old/glib-2.60.3/gio/gnetworkaddress.c 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/gio/gnetworkaddress.c 2019-06-10 19:47:20.000000000 +0200 @@ -1261,13 +1261,8 @@ */ if (error != NULL && !addr_enum->last_error && (addr_enum->state & RESOLVE_STATE_WAITING_ON_IPV4)) { + /* ipv6 lookup failed, but ipv4 is still outstanding. wait. */ addr_enum->last_error = g_steal_pointer (&error); - - addr_enum->wait_source = g_timeout_source_new (HAPPY_EYEBALLS_RESOLUTION_DELAY_MS); - g_source_set_callback (addr_enum->wait_source, - on_address_timeout, - addr_enum, NULL); - g_source_attach (addr_enum->wait_source, addr_enum->context); } else if (addr_enum->waiting_task != NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/gio/gnetworkmonitornm.c new/glib-2.60.4/gio/gnetworkmonitornm.c --- old/glib-2.60.3/gio/gnetworkmonitornm.c 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/gio/gnetworkmonitornm.c 2019-06-10 19:47:20.000000000 +0200 @@ -196,7 +196,7 @@ } else if (nm_state <= NM_STATE_CONNECTED_SITE) { - new_network_available = FALSE; + new_network_available = TRUE; new_network_metered = FALSE; if (nm_connectivity == NM_CONNECTIVITY_PORTAL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/gio/tests/network-address.c new/glib-2.60.4/gio/tests/network-address.c --- old/glib-2.60.3/gio/tests/network-address.c 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/gio/tests/network-address.c 2019-06-10 19:47:20.000000000 +0200 @@ -820,6 +820,30 @@ } static void +test_happy_eyeballs_ipv6_error_ipv4_very_slow (HappyEyeballsFixture *fixture, + gconstpointer user_data) +{ + AsyncData data = { 0 }; + GError *ipv6_error; + + g_test_bug ("merge_requests/865"); + + /* If ipv6 fails, ensuring that ipv6 errors before ipv4 finishes, we still get ipv4. */ + + data.loop = fixture->loop; + ipv6_error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_TIMED_OUT, "IPv6 Broken"); + mock_resolver_set_ipv6_error (fixture->mock_resolver, ipv6_error); + mock_resolver_set_ipv4_delay_ms (fixture->mock_resolver, SLOW_DELAY_MORE_THAN_TIMEOUT); + + g_socket_address_enumerator_next_async (fixture->enumerator, NULL, got_addr, &data); + g_main_loop_run (fixture->loop); + + assert_list_matches_expected (data.addrs, fixture->input_ipv4_results); + + g_error_free (ipv6_error); +} + +static void test_happy_eyeballs_ipv4_error_ipv4_first (HappyEyeballsFixture *fixture, gconstpointer user_data) { @@ -977,6 +1001,7 @@ gchar *path; g_test_init (&argc, &argv, NULL); + g_test_bug_base ("https://gitlab.gnome.org/GNOME/glib/"); g_test_add_func ("/network-address/basic", test_basic); @@ -1031,6 +1056,8 @@ happy_eyeballs_setup, test_happy_eyeballs_ipv6_error_ipv4_first, happy_eyeballs_teardown); g_test_add ("/network-address/happy-eyeballs/ipv6-error-ipv6-first", HappyEyeballsFixture, NULL, happy_eyeballs_setup, test_happy_eyeballs_ipv6_error_ipv6_first, happy_eyeballs_teardown); + g_test_add ("/network-address/happy-eyeballs/ipv6-error-ipv4-very-slow", HappyEyeballsFixture, NULL, + happy_eyeballs_setup, test_happy_eyeballs_ipv6_error_ipv4_very_slow, happy_eyeballs_teardown); g_test_add ("/network-address/happy-eyeballs/ipv4-error-ipv6-first", HappyEyeballsFixture, NULL, happy_eyeballs_setup, test_happy_eyeballs_ipv4_error_ipv6_first, happy_eyeballs_teardown); g_test_add ("/network-address/happy-eyeballs/ipv4-error-ipv4-first", HappyEyeballsFixture, NULL, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/glib/gmacros.h new/glib-2.60.4/glib/gmacros.h --- old/glib-2.60.3/glib/gmacros.h 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/glib/gmacros.h 2019-06-10 19:47:20.000000000 +0200 @@ -304,10 +304,10 @@ #endif /* Provide a string identifying the current function, non-concatenatable */ -#if defined (__func__) -#define G_STRFUNC ((const char*) (__func__)) -#elif defined (__GNUC__) && defined (__cplusplus) +#if defined (__GNUC__) && defined (__cplusplus) #define G_STRFUNC ((const char*) (__PRETTY_FUNCTION__)) +#elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define G_STRFUNC ((const char*) (__func__)) #elif defined (__GNUC__) || (defined(_MSC_VER) && (_MSC_VER > 1300)) #define G_STRFUNC ((const char*) (__FUNCTION__)) #else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/gobject/glib-genmarshal.in new/glib-2.60.4/gobject/glib-genmarshal.in --- old/glib-2.60.3/gobject/glib-genmarshal.in 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/gobject/glib-genmarshal.in 2019-06-10 19:47:20.000000000 +0200 @@ -330,6 +330,7 @@ 'ctype': 'gpointer', 'getter': 'g_marshal_value_peek_string', 'box': ['g_strdup', 'g_free'], + 'static-check': True, }, 'PARAM': { 'signal': 'PARAM', @@ -360,7 +361,7 @@ 'signal': 'VARIANT', 'ctype': 'gpointer', 'getter': 'g_marshal_value_peek_variant', - 'box': ['g_variant_ref', 'g_variant_unref'], + 'box': ['g_variant_ref_sink', 'g_variant_unref'], 'static-check': True, 'takes-type': False, }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/glib-2.60.3/meson.build new/glib-2.60.4/meson.build --- old/glib-2.60.3/meson.build 2019-05-21 17:59:05.000000000 +0200 +++ new/glib-2.60.4/meson.build 2019-06-10 19:47:20.000000000 +0200 @@ -1,5 +1,5 @@ project('glib', 'c', 'cpp', - version : '2.60.3', + version : '2.60.4', meson_version : '>= 0.48.0', default_options : [ 'buildtype=debugoptimized',