Hello community, here is the log from the commit of package firebird for openSUSE:Factory checked in at 2012-06-10 20:15:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/firebird (Old) and /work/SRC/openSUSE:Factory/.firebird.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "firebird", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/firebird/firebird-classic.changes 2012-05-29 11:37:24.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.firebird.new/firebird-classic.changes 2012-06-10 21:50:45.000000000 +0200 @@ -1,0 +2,29 @@ +Wed Jun 6 12:44:04 UTC 2012 - [email protected] + +- update to upstream version 2.5.2.25494 + * Rolled back the ODS level solution for CORE-2709 as it causes + cross-version compatibility issues (CORE-3853) as well as + functional regressions (CORE-3675). Another solution is likely + to be committed instead. + * CORE-3769: The message 'Unknown tag (4) in isc_svc_query() + results' appears when fbtracemgr is interrupted by Ctrl-C + +------------------------------------------------------------------- +Sun Jun 3 13:49:11 UTC 2012 - [email protected] + +- update to upstream version 2.5.2.25492 + * CORE-3855: Blobs, inserted into GLOBAL TEMPORARY TABLE ON + COMMIT DELETE ROWS, could be placed into newly allocated + pages even if there is enough free place on some existing + data page + * isql: fix output if charset is different from locale + * Backported fix of timed semaphores in 32-bit build +- firebird-2.5.2-isqlalign.patch: + refresh +- firebird-2.5.2-isqllocale.patch: + backported isql fix of output if locale different from charset +- firebird-2.5.2-isqlwidth.patch: + backported fix for buffer overflow in isql if column width set + wider that its natural size + +------------------------------------------------------------------- firebird.changes: same change Old: ---- Firebird-2.5.2.26488-0.tar.bz2 New: ---- Firebird-2.5.2.26494-0.tar.bz2 firebird-2.5.2-isqllocale.patch firebird-2.5.2-isqlwidth.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ firebird-classic.spec ++++++ --- /var/tmp/diff_new_pack.Kl8asP/_old 2012-06-10 21:50:47.000000000 +0200 +++ /var/tmp/diff_new_pack.Kl8asP/_new 2012-06-10 21:50:47.000000000 +0200 @@ -16,7 +16,7 @@ # -%define upversion 2.5.2.26488 +%define upversion 2.5.2.26494 %define pkgversion Firebird-%{upversion}-0 %define bname firebird @@ -49,6 +49,8 @@ Patch6: %{bname}-2.5.1-config.patch Patch7: %{bname}-2.5.2-pkgconfig.patch Patch11: %{bname}-2.5.2-isqlalign.patch +Patch12: %{bname}-2.5.2-isqllocale.patch +Patch13: %{bname}-2.5.2-isqlwidth.patch %description Classic architecture binaries for Firebird SQL server. These can be used @@ -72,6 +74,8 @@ %patch6 %patch7 %patch11 -p1 +%patch12 -p1 +%patch13 -p1 %build ./autogen.sh --prefix=%{_prefix} \ ++++++ firebird.spec ++++++ --- /var/tmp/diff_new_pack.Kl8asP/_old 2012-06-10 21:50:47.000000000 +0200 +++ /var/tmp/diff_new_pack.Kl8asP/_new 2012-06-10 21:50:47.000000000 +0200 @@ -16,7 +16,7 @@ # -%define upversion 2.5.2.26488 +%define upversion 2.5.2.26494 %define pkgversion Firebird-%{upversion}-0 %if 0%{?suse_version} < 1130 @@ -47,6 +47,8 @@ Patch6: %{name}-2.5.1-config.patch Patch7: %{name}-2.5.2-pkgconfig.patch Patch11: %{name}-2.5.2-isqlalign.patch +Patch12: %{name}-2.5.2-isqllocale.patch +Patch13: %{name}-2.5.2-isqlwidth.patch %description Firebird is a relational database offering many ANSI SQL standard @@ -65,6 +67,8 @@ %patch6 %patch7 %patch11 -p1 +%patch12 -p1 +%patch13 -p1 %build ./autogen.sh --prefix=%{_prefix} \ ++++++ Firebird-2.5.2.26488-0.tar.bz2 -> Firebird-2.5.2.26494-0.tar.bz2 ++++++ /work/SRC/openSUSE:Factory/firebird/Firebird-2.5.2.26488-0.tar.bz2 /work/SRC/openSUSE:Factory/.firebird.new/Firebird-2.5.2.26494-0.tar.bz2 differ: char 11, line 1 ++++++ firebird-2.5.2-isqlalign.patch ++++++ --- /var/tmp/diff_new_pack.Kl8asP/_old 2012-06-10 21:50:47.000000000 +0200 +++ /var/tmp/diff_new_pack.Kl8asP/_new 2012-06-10 21:50:47.000000000 +0200 @@ -8,15 +8,15 @@ src/isql/isql.epp --- - src/isql/isql.epp | 153 +++++++++++++++++++++++++++++++++++++++++++++-------- + src/isql/isql.epp | 159 +++++++++++++++++++++++++++++++++++++++++++--------- src/isql/isql.h | 1 + - 2 files changed, 132 insertions(+), 22 deletions(-) + 2 files changed, 132 insertions(+), 28 deletions(-) diff --git a/src/isql/isql.epp b/src/isql/isql.epp -index db01282..8cde5d8 100644 +index d764102..dc0936d 100644 --- a/src/isql/isql.epp +++ b/src/isql/isql.epp -@@ -128,6 +128,8 @@ using MsgFormat::SafeArg; +@@ -131,6 +131,8 @@ using MsgFormat::SafeArg; #include "../isql/InputDevices.h" #include "../isql/OptionsBase.h" @@ -25,7 +25,7 @@ DATABASE DB = COMPILETIME "yachts.lnk"; -@@ -242,6 +244,98 @@ const switch_info switches[] = +@@ -245,6 +247,98 @@ const switch_info switches[] = }; @@ -124,7 +124,7 @@ static inline bool commit_trans(isc_tr_handle* x) { if (isc_commit_transaction (isc_status, x)) { -@@ -578,6 +672,7 @@ int ISQL_main(int argc, char* argv[]) +@@ -583,6 +677,7 @@ int ISQL_main(int argc, char* argv[]) TEXT tabname[WORDLENGTH]; tabname[0] = '\0'; isqlGlob.db_SQL_dialect = 0; @@ -132,7 +132,7 @@ // Output goes to stdout by default isqlGlob.Out = stdout; -@@ -5857,6 +5952,7 @@ void ISQL_get_version(bool call_by_create_db) +@@ -5862,6 +5957,7 @@ void ISQL_get_version(bool call_by_create_db) isc_info_ods_version, isc_info_ods_minor_version, isc_info_db_sql_dialect, @@ -140,7 +140,7 @@ Version_info ? isc_info_firebird_version: isc_info_end, isc_info_end }; -@@ -6013,6 +6109,10 @@ void ISQL_get_version(bool call_by_create_db) +@@ -6018,6 +6114,10 @@ void ISQL_get_version(bool call_by_create_db) } break; @@ -151,7 +151,26 @@ default: isqlGlob.printf("Internal error: Unexpected isc_info_value %d%s", item, NEWLINE); -@@ -7640,15 +7740,12 @@ static SSHORT print_item(TEXT** s, XSQLVAR* var, const int length) +@@ -7358,18 +7458,6 @@ static bool checkSpecial(TEXT* const p, const int length, const double value) + } + + +-static void align_string(char* out, unsigned clen, unsigned slen, const char* s) +-{ +- if (slen > clen) +- slen = clen; +- memcpy(out, s, slen); +- if (clen > slen) +- memset(out + slen, ' ', clen - slen); +- out[clen] = ' '; +- out[clen + 1] = '\0'; +-} +- +- + static SSHORT print_item(TEXT** s, XSQLVAR* var, const int length) + { + /************************************** +@@ -7657,12 +7745,12 @@ static SSHORT print_item(TEXT** s, XSQLVAR* var, const int length) sprintf(p, "%-*s ", length, buff2); ISQL_FREE(buff2); } @@ -161,16 +180,13 @@ - } else { -- // Truncate if necessary -- if (length < var->sqllen) -- string[length] = '\0'; -- sprintf(p, "%-*s ", length, var->sqldata); +- align_string(p, length, var->sqllen, var->sqldata); + IcuUtil::pad(p, var->sqlsubtype, strlen(var->sqldata), var->sqldata, length, false); + strcat(p, " "); } break; -@@ -7736,15 +7833,12 @@ static SSHORT print_item(TEXT** s, XSQLVAR* var, const int length) +@@ -7750,12 +7838,12 @@ static SSHORT print_item(TEXT** s, XSQLVAR* var, const int length) } ISQL_FREE(buff2); } @@ -180,16 +196,13 @@ - } else { -- // Truncate if necessary -- if (length < avary->vary_length) -- avary->vary_length = length; -- sprintf(p, "%-*.*s ", length, (int) avary->vary_length, avary->vary_string); +- align_string(p, length, avary->vary_length, avary->vary_string); + IcuUtil::pad(p, var->sqlsubtype, avary->vary_length, avary->vary_string, length, false); + strcat(p, " "); } break; } -@@ -8182,16 +8276,20 @@ static void process_header(const XSQLDA* sqlda, const int pad[], TEXT header[], +@@ -8193,16 +8281,20 @@ static void process_header(const XSQLDA* sqlda, const int pad[], TEXT header[], for (const XSQLVAR* const end = var + sqlda->sqld; var < end; var++, i++) { const SSHORT type = var->sqltype & ~1; @@ -217,7 +230,7 @@ } *p2 = '\0'; } -@@ -8430,7 +8528,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ +@@ -8441,7 +8533,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ USHORT data_length, disp_length, alignment; data_length = disp_length = alignment = var->sqllen; @@ -226,7 +239,7 @@ // Minimum display length should not be less than that needed // for displaying null -@@ -8472,6 +8570,8 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ +@@ -8483,6 +8575,8 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ // OCTETS data is displayed in hex if (var->sqlsubtype == 1) disp_length = 2 * var->sqllen; @@ -235,7 +248,7 @@ break; case SQL_VARYING: data_length += sizeof(USHORT) + 1; -@@ -8479,6 +8579,8 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ +@@ -8490,6 +8584,8 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ // OCTETS data is displayed in hex if (var->sqlsubtype == 1) disp_length = 2 * var->sqllen; @@ -244,7 +257,7 @@ break; case SQL_SHORT: disp_length = SHORT_LEN; -@@ -8509,7 +8611,10 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ +@@ -8520,7 +8616,10 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ // This is the print width of each column @@ -256,7 +269,7 @@ // Is there a collist entry, then use that width, but only for text if (type == SQL_TEXT || type == SQL_VARYING) -@@ -8518,8 +8623,11 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ +@@ -8529,8 +8628,11 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ pad[i] = global_Col_default; } @@ -269,7 +282,7 @@ // Allocate space in buffer for data -@@ -8527,6 +8635,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ +@@ -8538,6 +8640,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ var->sqldata = (SCHAR*) buffer + offset; offset += data_length; } ++++++ firebird-2.5.2-isqllocale.patch ++++++ From: mkubecek <mkubecek@de594faa-8d1b-4a0c-9a6a-a7de5f8bf859> Date: Tue, 29 May 2012 20:14:54 +0000 Subject: isql: fix output if charset is different from locale git-svn-id: https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/trunk@54565 de594faa-8d1b-4a0c-9a6a-a7de5f8bf859 --- src/isql/isql.epp | 13 ++++++++++++- 1 files changed, 12 insertions(+), 1 deletions(-) diff --git a/src/isql/isql.epp b/src/isql/isql.epp index dc0936d..4930ccf 100644 --- a/src/isql/isql.epp +++ b/src/isql/isql.epp @@ -306,7 +306,18 @@ namespace IcuUtil if (len > width) len = width; - sprintf(buffer, (right ? "%*.*s" : "%-*.*s"), width, len, str); + if (right) { + memcpy(buffer + width - len, str, len); + if (width > len) + memset(buffer, ' ', width - len); + } + else + { + memcpy(buffer, str, len); + if (width > len) + memset(buffer + len, ' ', width - len); + } + buffer[width] = '\0'; return; } -- 1.7.7 ++++++ firebird-2.5.2-isqlwidth.patch ++++++ From: mkubecek <mkubecek@de594faa-8d1b-4a0c-9a6a-a7de5f8bf859> Date: Tue, 29 May 2012 20:19:58 +0000 Subject: isql: fix buffer overflow when 'set width' sets bigger width than column's natural size git-svn-id: https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/trunk@54566 de594faa-8d1b-4a0c-9a6a-a7de5f8bf859 --- src/isql/isql.epp | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/src/isql/isql.epp b/src/isql/isql.epp index 4930ccf..8e071d8 100644 --- a/src/isql/isql.epp +++ b/src/isql/isql.epp @@ -8637,6 +8637,7 @@ static SLONG process_sqlda_display(XSQLDA* const sqlda, SLONG buffer[], int pad[ { if (!global_Cols.find(var->aliasname, &pad[i]) && global_Col_default) pad[i] = global_Col_default; + disp_length = pad[i]; } if ((type == SQL_TEXT || type == SQL_VARYING) && var->sqlsubtype == 4) -- 1.7.7 -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
