Your message dated Sat, 21 Oct 2006 14:34:03 -0700
with message-id <[EMAIL PROTECTED]>
and subject line Bug#382178: fixed in libgda2 1.2.3-3
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: gda2-freetds
Version: 1.2.3-2
Severity: normal
Tags: patch

The presence of a DATABASE field in the DNS of a FreeTDS-Provider
causes an segmentation fault at time of connection.

Cause:
        - gda_client_open_connection() wants to switch to the
          given <DATABASE>
        - gda_freetds_execute_cmd() will be called with an argument
          of "USE <DATABASE>"
        - tds_process_result_tokens() sets tds_cnc->tds->res_info
          to NULL
        - tds_cnc->tds->res_info->rows_exist refers to a NULL pointer

Solution:
        - Test for tds_cnc->tds->res_info != NULL before access of
          rows_exist

Two additional fixes showed necessary:
        - tds_process_result_tokens() takes 3 instead of 2 arguments
        - tds_free_connection() was misspelt as tds_free_connect()

Example configuration:
<libgda-config>
        <section path="/apps/libgda/Datasources/EXAMPLE">
        <entry name="Provider" type="string" value="FreeTDS"/>
        <entry name="Description" type="string" value="Test"/>
        <entry name="DSN" type="string" value="HOST=localhost;DATABASE=testdb"/>
        </section>
</libgda-config>

Patch:
diff -ru libgda-1.2.3/providers/freetds/gda-freetds-provider.c 
libgda-1.2.3.mod/providers/freetds/gda-freetds-provider.c
--- libgda-1.2.3/providers/freetds/gda-freetds-provider.c       2004-12-28 
14:26:11.000000000 +0100
+++ libgda-1.2.3.mod/providers/freetds/gda-freetds-provider.c   2006-08-09 
13:39:56.000000000 +0200
@@ -358,7 +358,7 @@
        }
        if (tds_cnc->config) {
 #ifdef HAVE_FREETDS_VER0_6X
-               tds_free_connect (tds_cnc->config);
+               tds_free_connection (tds_cnc->config);
 #else
                tds_free_config(tds_cnc->config);
 #endif
@@ -803,12 +803,12 @@
 
        /* there should not be any result tokens */
 #ifdef HAVE_FREETDS_VER0_6X
-       while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds, 
&tds_cnc->result_type))
+       while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds, 
&tds_cnc->result_type, NULL))
 #else
        while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds)) 
 #endif
               == TDS_SUCCEED) {
-               if (tds_cnc->tds->res_info->rows_exist) {
+               if (tds_cnc->tds->res_info && 
tds_cnc->tds->res_info->rows_exist) {
                        gda_log_error (_("Unexpected result tokens in 
execute_cmd()."));
                        error = gda_freetds_make_error (tds_cnc->tds,
                                                        _("Unexpected result 
tokens in execute_cmd()."));
diff -ru libgda-1.2.3/providers/freetds/gda-freetds-recordset.c 
libgda-1.2.3.mod/providers/freetds/gda-freetds-recordset.c
--- libgda-1.2.3/providers/freetds/gda-freetds-recordset.c      2004-12-28 
14:26:11.000000000 +0100
+++ libgda-1.2.3.mod/providers/freetds/gda-freetds-recordset.c  2006-08-09 
13:27:48.000000000 +0200
@@ -341,7 +341,7 @@
 
 #ifdef HAVE_FREETDS_VER0_6X
        while ((tds_cnc->rc = tds_process_result_tokens (tds_cnc->tds,
-                                                        &tds_cnc->result_type))
+                                                        &tds_cnc->result_type, 
NULL))
               == TDS_SUCCEED) {
                if (tds_cnc->result_type == TDS_ROW_RESULT) {
                        gint row_type, compute_id;


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (990, 'testing'), (90, 'unstable'), (80, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-686
Locale: LANG=C, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

Versions of packages gda2-freetds depends on:
ii  libc6                      2.3.6-15      GNU C Library: Shared libraries
ii  libct3                     0.63-3        libraries for connecting to MS SQL
ii  libgda2-3                  1.2.3-2       GNOME Data Access library for GNOM
ii  libglib2.0-0               2.10.3-3      The GLib library of C routines
ii  libxml2                    2.6.26.dfsg-3 GNOME XML library
ii  libxslt1.1                 1.1.17-2      XSLT processing library - runtime 
ii  zlib1g                     1:1.2.3-13    compression library - runtime

gda2-freetds recommends no packages.

-- no debconf information


--- End Message ---
--- Begin Message ---
Source: libgda2
Source-Version: 1.2.3-3

We believe that the bug you reported is fixed in the latest version of
libgda2, which is due to be installed in the Debian FTP archive:

gda2-freetds_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/gda2-freetds_1.2.3-3_i386.deb
gda2-mysql_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/gda2-mysql_1.2.3-3_i386.deb
gda2-odbc_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/gda2-odbc_1.2.3-3_i386.deb
gda2-postgres_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/gda2-postgres_1.2.3-3_i386.deb
gda2-sqlite_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/gda2-sqlite_1.2.3-3_i386.deb
libgda2-3-dbg_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/libgda2-3-dbg_1.2.3-3_i386.deb
libgda2-3_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/libgda2-3_1.2.3-3_i386.deb
libgda2-bin_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/libgda2-bin_1.2.3-3_i386.deb
libgda2-common_1.2.3-3_all.deb
  to pool/main/libg/libgda2/libgda2-common_1.2.3-3_all.deb
libgda2-dev_1.2.3-3_i386.deb
  to pool/main/libg/libgda2/libgda2-dev_1.2.3-3_i386.deb
libgda2-doc_1.2.3-3_all.deb
  to pool/main/libg/libgda2/libgda2-doc_1.2.3-3_all.deb
libgda2_1.2.3-3.diff.gz
  to pool/main/libg/libgda2/libgda2_1.2.3-3.diff.gz
libgda2_1.2.3-3.dsc
  to pool/main/libg/libgda2/libgda2_1.2.3-3.dsc



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Gustavo R. Montesino <[EMAIL PROTECTED]> (supplier of updated libgda2 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Sat, 21 Oct 2006 07:25:48 -0300
Source: libgda2
Binary: gda2-postgres gda2-mysql libgda2-doc libgda2-3-dbg gda2-sqlite 
libgda2-dev libgda2-bin libgda2-common libgda2-3 gda2-odbc gda2-freetds
Architecture: source i386 all
Version: 1.2.3-3
Distribution: unstable
Urgency: low
Maintainer: Gustavo R. Montesino <[EMAIL PROTECTED]>
Changed-By: Gustavo R. Montesino <[EMAIL PROTECTED]>
Description: 
 gda2-freetds - FreeTDS backend plugin for GNOME Data Access library for GNOME2
 gda2-mysql - MySQL backend plugin for GNOME Data Access library for GNOME2
 gda2-odbc  - ODBC backend plugin for GNOME Data Access library for GNOME2
 gda2-postgres - PostgreSQL backend plugin for GNOME Data Access library for 
GNOME
 gda2-sqlite - SQLite backend plugin for GNOME Data Access library for GNOME2
 libgda2-3  - GNOME Data Access library for GNOME2
 libgda2-3-dbg - GDA2 library and debugging symbols
 libgda2-bin - Binnary files for GNOME Data Access library for GNOME2
 libgda2-common - Common files for GNOME Data Access library for GNOME2
 libgda2-dev - Development files for GNOME Data Access library for GNOME2
 libgda2-doc - Documentation files for GNOME Data Access library for GNOME2
Closes: 382178 387591
Changes: 
 libgda2 (1.2.3-3) unstable; urgency=low
 .
   * debian/patches/003_freetds_database_segfault.patch: Fix FreeTDS provider
     segfault when DSN contains DATABASE, thanks to Gert-jan Los
     (closes: #382178)
   * debian/patches/004_const_void_fix.patch: Remove ignored const from
     gpointer return, fix gcc 4 warning. (Closes: #387591)
Files: 
 1f811f11177d1d3a11242ed07d43af45 1824 libs optional libgda2_1.2.3-3.dsc
 e18d6b2dde09f8f74ba5b73a25e2d076 9389 libs optional libgda2_1.2.3-3.diff.gz
 4df60db1742c17a2d5d9c92dacd0217c 352658 misc optional 
libgda2-common_1.2.3-3_all.deb
 8f244a759ead9f4429c5041144c2dc82 263642 doc optional 
libgda2-doc_1.2.3-3_all.deb
 a3ce3c28201f95edb634120b71daeb9a 220898 libs optional 
libgda2-3_1.2.3-3_i386.deb
 b09c3b0d18c998f3a89f7a4cc6e84779 29734 misc optional 
libgda2-bin_1.2.3-3_i386.deb
 e4c3c107ac150f849df15e38b8be1e68 191570 libdevel optional 
libgda2-dev_1.2.3-3_i386.deb
 2fc3b99d4b5624022cf80025bb5adbda 364748 libdevel extra 
libgda2-3-dbg_1.2.3-3_i386.deb
 1b39887f4bf9d9f80673d93144518395 17874 gnome optional 
gda2-mysql_1.2.3-3_i386.deb
 7b644e956688194e721c0bb27ea8cc19 12988 gnome optional 
gda2-odbc_1.2.3-3_i386.deb
 56c0ff1bd7ab0ce81de01a67af566723 27308 gnome optional 
gda2-postgres_1.2.3-3_i386.deb
 ca282854ebdc915045bd4a64012fde35 11270 gnome optional 
gda2-sqlite_1.2.3-3_i386.deb
 2abb4f20a6e9d8e9714e68b76a1bb47b 17246 gnome optional 
gda2-freetds_1.2.3-3_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (GNU/Linux)

iD8DBQFFOfkD4VUX8isJIMARAi4QAKCXgm9vf9l1ngODu44aBOySo15ZQwCcCw0X
kBIkJEwNbuOY8fVYKBfuVa4=
=MFcy
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to