Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libgda for openSUSE:Factory checked in at 2021-07-27 14:32:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libgda (Old) and /work/SRC/openSUSE:Factory/.libgda.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libgda" Tue Jul 27 14:32:16 2021 rev:91 rq:908550 version:6.0.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libgda/libgda.changes 2021-05-21 21:50:30.454111321 +0200 +++ /work/SRC/openSUSE:Factory/.libgda.new.1899/libgda.changes 2021-07-27 14:32:39.671448505 +0200 @@ -1,0 +2,6 @@ +Mon Jul 26 16:18:01 UTC 2021 - Andreas Schwab <sch...@suse.de> + +- overflow-undefined-behavior.patch: Fix undefined behavior due to signed + integer overflow + +------------------------------------------------------------------- New: ---- overflow-undefined-behavior.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libgda.spec ++++++ --- /var/tmp/diff_new_pack.D8jCWH/_old 2021-07-27 14:32:40.235447947 +0200 +++ /var/tmp/diff_new_pack.D8jCWH/_new 2021-07-27 14:32:40.239447943 +0200 @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # + %bcond_with fbclient # BDB: Currently broken. %bcond_with bdb @@ -30,12 +31,14 @@ Source: https://download.gnome.org/sources/libgda/6.0/%{_name}-%{version}.tar.xz # PATCH-FIX-UPSTREAM libgda-javadetection-biarch.patch bgo#673560 -- Prepare getsp to be sed'ed for biarch Patch1: libgda-javadetection-biarch.patch +# PATCH-FIX-UPSTREAM overflow-undefined-behavior.patch -- undefined behavior due to overflow +Patch2: overflow-undefined-behavior.patch -BuildRequires: meson BuildRequires: db-devel BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: gobject-introspection-devel +BuildRequires: gtk-doc BuildRequires: intltool >= 0.40.6 BuildRequires: itstool BuildRequires: java-devel >= 1.8 @@ -43,6 +46,7 @@ BuildRequires: libopenssl-1_1-devel BuildRequires: libtool BuildRequires: mdbtools-devel +BuildRequires: meson BuildRequires: mysql BuildRequires: mysql-devel BuildRequires: ncurses-devel @@ -51,14 +55,14 @@ BuildRequires: postgresql-devel BuildRequires: readline-devel BuildRequires: unixODBC-devel +BuildRequires: update-desktop-files BuildRequires: vala >= 0.26.0 BuildRequires: yelp-tools -BuildRequires: gtk-doc -BuildRequires: update-desktop-files BuildRequires: pkgconfig(sqlcipher) %if %{with fbclient} BuildRequires: pkgconfig(fbclient) %endif +BuildRequires: pkgconfig(gladeui-2.0) BuildRequires: pkgconfig(glib-2.0) >= 2.32.0 BuildRequires: pkgconfig(goocanvas-2.0) BuildRequires: pkgconfig(gtk+-3.0) @@ -66,13 +70,12 @@ BuildRequires: pkgconfig(iso-codes) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(libgvc) +BuildRequires: pkgconfig(libmariadb) BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(libsoup-2.4) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(sqlite3) -BuildRequires: pkgconfig(gladeui-2.0) -BuildRequires: pkgconfig(libmariadb) #!BuildIgnore: openssl %description @@ -518,5 +521,4 @@ # NOTE: Files don't conflict with previous version => Use versioned package name %{_libdir}/libgda-6.0/providers/libgda-sqlite-6.0.so - %changelog ++++++ overflow-undefined-behavior.patch ++++++ >From 048aa3ed2a313816ea10a4162b626ea507ac6430 Mon Sep 17 00:00:00 2001 From: Andreas Schwab <sch...@suse.de> Date: Sun, 25 Jul 2021 10:48:48 +0200 Subject: [PATCH] Fix undefined behavior due to signed integer overflow --- libgda/sql-parser/lemon.c | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/libgda/sql-parser/lemon.c b/libgda/sql-parser/lemon.c index cf0f3b3eb..a6fe75bb9 100644 --- a/libgda/sql-parser/lemon.c +++ b/libgda/sql-parser/lemon.c @@ -3505,7 +3505,7 @@ void print_stack_union( int maxdtlength; /* Maximum length of any ".datatype" field. */ char *stddt; /* Standardized name for a datatype */ int i,j; /* Loop counters */ - int hash; /* For hashing the name of a type */ + unsigned int hash; /* For hashing the name of a type */ const char *name; /* Name of the parser */ /* Allocate and initialize types[] and allocate stddt[] */ @@ -3568,7 +3568,7 @@ void print_stack_union( break; } hash++; - if( hash>=arraysize ) hash = 0; + if( (int)hash>=arraysize ) hash = 0; } if( types[hash]==0 ){ sp->dtnum = hash + 1; @@ -4342,9 +4342,9 @@ int SetUnion(char *s1, char *s2) ** Code for processing tables in the LEMON parser generator. */ -PRIVATE int strhash(const char *x) +PRIVATE unsigned int strhash(const char *x) { - int h = 0; + unsigned int h = 0; while( *x) h = h*13 + *(x++); return h; } @@ -4417,8 +4417,8 @@ void Strsafe_init(){ int Strsafe_insert(const char *data) { x1node *np; - int h; - int ph; + unsigned int h; + unsigned int ph; if( x1a==0 ) return 0; ph = strhash(data); @@ -4472,7 +4472,7 @@ int Strsafe_insert(const char *data) ** if no such key. */ const char *Strsafe_find(const char *key) { - int h; + unsigned int h; x1node *np; if( x1a==0 ) return 0; @@ -4583,8 +4583,8 @@ void Symbol_init(){ int Symbol_insert(struct symbol *data, const char *key) { x2node *np; - int h; - int ph; + unsigned int h; + unsigned int ph; if( x2a==0 ) return 0; ph = strhash(key); @@ -4640,7 +4640,7 @@ int Symbol_insert(struct symbol *data, const char *key) ** if no such key. */ struct symbol *Symbol_find(const char *key) { - int h; + unsigned int h; x2node *np; if( x2a==0 ) return 0; @@ -4714,9 +4714,9 @@ PRIVATE int statecmp(struct config *a, struct config *b) } /* Hash a state */ -PRIVATE int statehash(struct config *a) +PRIVATE unsigned int statehash(struct config *a) { - int h=0; + unsigned int h=0; while( a ){ h = h*571 + a->rp->index*37 + a->dot; a = a->bp; @@ -4782,8 +4782,8 @@ void State_init(){ int State_insert(struct state *data, struct config *key) { x3node *np; - int h; - int ph; + unsigned int h; + unsigned int ph; if( x3a==0 ) return 0; ph = statehash(key); @@ -4839,7 +4839,7 @@ int State_insert(struct state *data, struct config *key) ** if no such key. */ struct state *State_find(struct config *key) { - int h; + unsigned int h; x3node *np; if( x3a==0 ) return 0; @@ -4869,9 +4869,9 @@ struct state **State_arrayof() } /* Hash a configuration */ -PRIVATE int confighash(struct config *a) +PRIVATE unsigned int confighash(struct config *a) { - int h=0; + unsigned int h=0; h = h*571 + a->rp->index*37 + a->dot; return h; } @@ -4924,8 +4924,8 @@ void Configtable_init(){ int Configtable_insert(struct config *data) { x4node *np; - int h; - int ph; + unsigned int h; + unsigned int ph; if( x4a==0 ) return 0; ph = confighash(data); @@ -4979,7 +4979,7 @@ int Configtable_insert(struct config *data) ** if no such key. */ struct config *Configtable_find(struct config *key) { - int h; + unsigned int h; x4node *np; if( x4a==0 ) return 0; -- 2.32.0