connectivity/source/drivers/firebird/Util.cxx |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

New commits:
commit 6d82b1f0c6deaaf55df762dbfda03eae21ff82c2
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Mon Dec 27 11:34:27 2021 +0100
Commit:     Julien Nabet <serval2...@yahoo.fr>
CommitDate: Mon Dec 27 15:40:01 2021 +0100

    Related tdf#130595: SQL_NULL means pVar->sqldata = nullptr
    
    Fix this assertion:
    0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:49
    1  0x00007fcc7f2b2536 in __GI_abort () at abort.c:79
    2  0x00007fcc7f2b241f in __assert_fail_base
       (fmt=0x7fcc7f418998 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
assertion=0x7fcc614a5de7 "false", file=0x7fcc614b3542 
"/home/julien/lo/libreoffice/connectivity/source/drivers/firebird/Util.cxx", 
line=346, function=<optimized out>) at assert.c:92
    3  0x00007fcc7f2c1212 in __GI___assert_fail
       (assertion=0x7fcc614a5de7 "false", file=0x7fcc614b3542 
"/home/julien/lo/libreoffice/connectivity/source/drivers/firebird/Util.cxx", 
line=346, function=0x7fcc614b3865 "void 
connectivity::firebird::mallocSQLVAR(XSQLDA *)") at assert.c:101
    4  0x00007fcc6149c715 in connectivity::firebird::mallocSQLVAR(XSQLDA*) 
(pSqlda=0x5bca950) at connectivity/source/drivers/firebird/Util.cxx:346
    5  0x00007fcc61470722 in 
connectivity::firebird::OPreparedStatement::ensurePrepared() (this=0x5bc6a10) 
at connectivity/source/drivers/firebird/PreparedStatement.cxx:110
    6  0x00007fcc614714df in 
connectivity::firebird::OPreparedStatement::getMetaData() (this=0x5bc6a10) at 
connectivity/source/drivers/firebird/PreparedStatement.cxx:147
    7  0x00007fcc6147165d in non-virtual thunk to 
connectivity::firebird::OPreparedStatement::getMetaData() () at 
connectivity/source/drivers/firebird/PreparedStatement.cxx:154
    8  0x00007fcc66694776 in dbaccess::OPreparedStatement::getMetaData() 
(this=0x5bc6cc0) at dbaccess/source/core/api/preparedstatement.cxx:178
    9  0x00007fcc6669480d in non-virtual thunk to 
dbaccess::OPreparedStatement::getMetaData() () at 
dbaccess/source/core/api/preparedstatement.cxx:179
    10 0x00007fcc667711bd in dbaccess::OSingleSelectQueryComposer::getColumns() 
(this=0x5bb99f0) at dbaccess/source/core/api/SingleSelectQueryComposer.cxx:824
    
    Change-Id: I285c9bcd0b1fd059994d339ae4d419dec516f220
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127551
    Tested-by: Jenkins
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>
    (cherry picked from commit abaf2b4ac7faada914885d95c49b554f576d7cee)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127567
    Reviewed-by: Lionel Mamane <lio...@mamane.lu>

diff --git a/connectivity/source/drivers/firebird/Util.cxx 
b/connectivity/source/drivers/firebird/Util.cxx
index 2d694eac94ec..344c0164ac66 100644
--- a/connectivity/source/drivers/firebird/Util.cxx
+++ b/connectivity/source/drivers/firebird/Util.cxx
@@ -342,8 +342,9 @@ void firebird::mallocSQLVAR(XSQLDA* pSqlda)
         case SQL_BOOLEAN:
             pVar->sqldata = static_cast<char *>(malloc(sizeof(sal_Bool)));
             break;
+        // See 
https://www.firebirdsql.org/file/documentation/html/en/refdocs/fblangref25/firebird-25-language-reference.html#fblangref25-datatypes-special-sqlnull
         case SQL_NULL:
-            assert(false); // TODO: implement
+            pVar->sqldata = nullptr;
             break;
         case SQL_QUAD:
             assert(false); // TODO: implement
@@ -388,7 +389,8 @@ void firebird::freeSQLVAR(XSQLDA* pSqlda)
             }
             break;
         case SQL_NULL:
-            assert(false); // TODO: implement
+            // See SQL_NULL case in mallocSQLVAR
+            assert(pVar->sqldata == nullptr);
             break;
         case SQL_QUAD:
             assert(false); // TODO: implement

Reply via email to