Hello community, here is the log from the commit of package gjs for openSUSE:Factory checked in at 2017-06-23 09:15:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gjs (Old) and /work/SRC/openSUSE:Factory/.gjs.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gjs" Fri Jun 23 09:15:50 2017 rev:65 rq:505720 version:1.48.5 Changes: -------- --- /work/SRC/openSUSE:Factory/gjs/gjs.changes 2017-06-19 13:22:51.244973718 +0200 +++ /work/SRC/openSUSE:Factory/.gjs.new/gjs.changes 2017-06-23 09:15:51.131737011 +0200 @@ -1,0 +2,9 @@ +Wed Jun 21 18:52:29 UTC 2017 - zai...@opensuse.org + +- Update to version 1.48.5: + + GJS crash in needsPostBarrier, possible access from wrong + thread (bgo#783935). + + Fix format string, caught by static analysis. + + Fixes for regression in 1.48.4. + +------------------------------------------------------------------- Old: ---- gjs-1.48.4.tar.xz New: ---- gjs-1.48.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gjs.spec ++++++ --- /var/tmp/diff_new_pack.533iCN/_old 2017-06-23 09:15:52.103599690 +0200 +++ /var/tmp/diff_new_pack.533iCN/_new 2017-06-23 09:15:52.107599125 +0200 @@ -17,7 +17,7 @@ Name: gjs -Version: 1.48.4 +Version: 1.48.5 Release: 0 # FIXME: find out if tapsets should really be in devel package or in main package Summary: JavaScript bindings based on gobject-introspection and Mozilla ++++++ gjs-1.48.4.tar.xz -> gjs-1.48.5.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/NEWS new/gjs-1.48.5/NEWS --- old/gjs-1.48.4/NEWS 2017-06-16 02:32:20.000000000 +0200 +++ new/gjs-1.48.5/NEWS 2017-06-21 20:33:37.000000000 +0200 @@ -1,3 +1,14 @@ +Version 1.48.5 +-------------- + +- Closed bugs: + + * GJS crash in needsPostBarrier, possible access from wrong thread [#783935, + Philip Chimento] + +- Fix format string, caught by static analysis [Claudio André] +- Fixes for regression in 1.48.4 [Philip Chimento] + Version 1.48.4 -------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/configure new/gjs-1.48.5/configure --- old/gjs-1.48.4/configure 2017-06-16 02:45:43.000000000 +0200 +++ new/gjs-1.48.5/configure 2017-06-21 20:05:27.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gjs 1.48.4. +# Generated by GNU Autoconf 2.69 for gjs 1.48.5. # # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=gjs>. # @@ -591,8 +591,8 @@ # Identity of this package. PACKAGE_NAME='gjs' PACKAGE_TARNAME='gjs' -PACKAGE_VERSION='1.48.4' -PACKAGE_STRING='gjs 1.48.4' +PACKAGE_VERSION='1.48.5' +PACKAGE_STRING='gjs 1.48.5' PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=gjs' PACKAGE_URL='https://wiki.gnome.org/Projects/Gjs' @@ -1428,7 +1428,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gjs 1.48.4 to adapt to many kinds of systems. +\`configure' configures gjs 1.48.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1498,7 +1498,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gjs 1.48.4:";; + short | recursive ) echo "Configuration of gjs 1.48.5:";; esac cat <<\_ACEOF @@ -1663,7 +1663,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gjs configure 1.48.4 +gjs configure 1.48.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2153,7 +2153,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gjs $as_me 1.48.4, which was +It was created by gjs $as_me 1.48.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3016,7 +3016,7 @@ # Define the identity of the package. PACKAGE='gjs' - VERSION='1.48.4' + VERSION='1.48.5' cat >>confdefs.h <<_ACEOF @@ -3243,10 +3243,10 @@ -GJS_VERSION=14804 +GJS_VERSION=14805 -$as_echo "#define GJS_VERSION (1 * 100 + 48) * 100 + 4" >>confdefs.h +$as_echo "#define GJS_VERSION (1 * 100 + 48) * 100 + 5" >>confdefs.h GETTEXT_PACKAGE=gjs @@ -20547,7 +20547,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gjs $as_me 1.48.4, which was +This file was extended by gjs $as_me 1.48.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20618,7 +20618,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gjs config.status 1.48.4 +gjs config.status 1.48.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/configure.ac new/gjs-1.48.5/configure.ac --- old/gjs-1.48.4/configure.ac 2017-06-16 02:22:48.000000000 +0200 +++ new/gjs-1.48.5/configure.ac 2017-06-21 20:03:50.000000000 +0200 @@ -3,7 +3,7 @@ m4_define(pkg_major_version, 1) m4_define(pkg_minor_version, 48) -m4_define(pkg_micro_version, 4) +m4_define(pkg_micro_version, 5) m4_define(pkg_version, pkg_major_version.pkg_minor_version.pkg_micro_version) m4_define(pkg_int_version, (pkg_major_version * 100 + pkg_minor_version) * 100 + pkg_micro_version) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/gi/closure.cpp new/gjs-1.48.5/gi/closure.cpp --- old/gjs-1.48.4/gi/closure.cpp 2017-06-16 02:22:16.000000000 +0200 +++ new/gjs-1.48.5/gi/closure.cpp 2017-06-21 20:04:26.000000000 +0200 @@ -36,6 +36,7 @@ JSRuntime *runtime; JSContext *context; GjsMaybeOwned<JSObject *> obj; + unsigned idle_clear_id; }; struct GjsClosure { @@ -132,6 +133,7 @@ closure->priv.obj.reset(); closure->priv.context = nullptr; closure->priv.runtime = nullptr; + closure->priv.idle_clear_id = 0; g_closure_unref(static_cast<GClosure *>(data)); return G_SOURCE_REMOVE; @@ -177,7 +179,7 @@ "removing our destroy notifier on global object)", closure); - g_idle_add(closure_clear_idle, closure); + c->idle_clear_id = g_idle_add(closure_clear_idle, closure); g_closure_ref(closure); } @@ -186,7 +188,8 @@ GClosure *closure) { GJS_DEC_COUNTER(closure); - g_idle_add(closure_clear_idle, closure); + Closure *c = &(reinterpret_cast<GjsClosure *>(closure))->priv; + c->idle_clear_id = g_idle_add(closure_clear_idle, closure); g_closure_ref(closure); } @@ -196,6 +199,13 @@ { Closure *self = &((GjsClosure*) closure)->priv; + if (self->idle_clear_id > 0) { + /* Remove any pending closure_clear_idle(), we are doing it + * immediately here. */ + g_source_remove(self->idle_clear_id); + closure_clear_idle(closure); + } + self->~Closure(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/gi/object.cpp new/gjs-1.48.5/gi/object.cpp --- old/gjs-1.48.4/gi/object.cpp 2017-06-16 02:30:12.000000000 +0200 +++ new/gjs-1.48.5/gi/object.cpp 2017-06-21 20:03:50.000000000 +0200 @@ -1631,15 +1631,16 @@ */ for (ConnectData *cd : priv->signals) { /* First remove any pending invalidation, we are doing it now. */ - if (cd->idle_invalidate_id > 0) + if (cd->idle_invalidate_id > 0) { g_source_remove(cd->idle_invalidate_id); + } else { + /* We have to remove the invalidate notifier, which would + * otherwise schedule a new pending invalidation. */ + g_closure_remove_invalidate_notifier(cd->closure, cd, + signal_connection_invalidated); + g_closure_invalidate(cd->closure); + } - /* We also have to remove the invalidate notifier, which would - * otherwise schedule a new pending invalidation. */ - g_closure_remove_invalidate_notifier(cd->closure, cd, - signal_connection_invalidated); - - g_closure_invalidate(cd->closure); g_slice_free(ConnectData, cd); } priv->signals.clear(); @@ -1828,7 +1829,7 @@ if (closure == NULL) goto out; - connect_data = g_slice_new(ConnectData); + connect_data = g_slice_new0(ConnectData); priv->signals.insert(connect_data); connect_data->obj = priv; /* This is a weak reference, and will be cleared when the closure is invalidated */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/test/gjs-test-coverage.cpp new/gjs-1.48.5/test/gjs-test-coverage.cpp --- old/gjs-1.48.4/test/gjs-test-coverage.cpp 2017-06-16 02:22:16.000000000 +0200 +++ new/gjs-1.48.5/test/gjs-test-coverage.cpp 2017-06-21 20:03:50.000000000 +0200 @@ -902,7 +902,7 @@ max_buf_size = strcspn(line, "\n"); detected_function = g_new(char, max_buf_size + 1); - nmatches = sscanf(line, "%i,%s", &hit_count, detected_function); + nmatches = sscanf(line, "%u,%s", &hit_count, detected_function); if (nmatches != 2) { if (errno != 0) g_error("sscanf: %s", strerror(errno)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.48.4/win32/config.h.win32 new/gjs-1.48.5/win32/config.h.win32 --- old/gjs-1.48.4/win32/config.h.win32 2017-06-16 02:45:49.000000000 +0200 +++ new/gjs-1.48.5/win32/config.h.win32 2017-06-21 20:05:35.000000000 +0200 @@ -13,7 +13,7 @@ #define GETTEXT_PACKAGE "gjs" /* The gjs version as an integer */ -#define GJS_VERSION 14804 +#define GJS_VERSION 14805 /* define if the compiler supports basic C++11 syntax */ #define HAVE_CXX11 1 @@ -74,7 +74,7 @@ #define PACKAGE_NAME "gjs" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "gjs 1.48.4" +#define PACKAGE_STRING "gjs 1.48.5" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gjs" @@ -83,10 +83,10 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "1.48.4" +#define PACKAGE_VERSION "1.48.5" /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Version number of package */ -#define VERSION "1.48.4" +#define VERSION "1.48.5"