connectivity/source/drivers/firebird/PreparedStatement.cxx |   14 +++++++++++++
 1 file changed, 14 insertions(+)

New commits:
commit 3a70b4a1be0e790579cc15e9917bd575de8d5315
Author:     Julien Nabet <serval2...@yahoo.fr>
AuthorDate: Sat Sep 21 15:22:16 2019 +0200
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Sep 23 09:59:32 2019 +0200

    tdf#127657: FIREBIRD error in query input param when referred field is 
integer
    
    Change-Id: I626c8a8869570986d0293cd9070a1ee40ec585dc
    Reviewed-on: https://gerrit.libreoffice.org/79314
    Reviewed-by: Julien Nabet <serval2...@yahoo.fr>
    (cherry picked from commit f23e19cd15f14566832befba73fb6bbc1cffb0d7)
    Reviewed-on: https://gerrit.libreoffice.org/79372
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx 
b/connectivity/source/drivers/firebird/PreparedStatement.cxx
index 71a43454f315..4586cc4a3ba4 100644
--- a/connectivity/source/drivers/firebird/PreparedStatement.cxx
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
@@ -229,6 +229,20 @@ void SAL_CALL OPreparedStatement::setString(sal_Int32 
nParameterIndex,
         assert( pVar->sqlsubtype == static_cast<short>(BlobSubtype::Clob) );
         setClob(nParameterIndex, sInput );
         break;
+    case SQL_SHORT:
+    {
+        sal_Int32 int32Value = sInput.toInt32();
+        if ( (int32Value < std::numeric_limits<sal_Int16>::min()) ||
+             (int32Value > std::numeric_limits<sal_Int16>::max()) )
+        {
+            ::dbtools::throwSQLException(
+                "Value out of range for SQL_SHORT type",
+                ::dbtools::StandardSQLState::INVALID_SQL_DATA_TYPE,
+                *this);
+        }
+        setShort(nParameterIndex, int32Value);
+        break;
+    }
     default:
         ::dbtools::throwSQLException(
             "Incorrect type for setString",
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to