connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx | 13 ++++++++++ 1 file changed, 13 insertions(+)
New commits: commit 56ef010aef4db3515f713ad9a2b587fb8402cf2b Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Tue Jul 10 17:18:56 2012 +0200 fdo#50849 work around psqlodbc segfault Change-Id: Ib7e484f778d97b3f18845cef12718618324c859f diff --git a/connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx b/connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx index e795693..f4e56ab 100644 --- a/connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx +++ b/connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx @@ -1152,6 +1152,19 @@ void ODatabaseMetaDataResultSet::openSpecialColumns(sal_Bool _bRowVer,const Any& const ::rtl::OUString& table,sal_Int32 scope, sal_Bool nullable ) throw(SQLException, RuntimeException) { + // Some ODBC drivers really don't like getting an empty string as tableName + // E.g. psqlodbc up to at least version 09.01.0100 segfaults + if (table.isEmpty()) + { + const char errMsg[] = "ODBC: Trying to get special columns of empty table name"; + const char SQLState[] = "HY009"; + throw SQLException( ::rtl::OUString(errMsg, sizeof(errMsg) - sizeof(errMsg[0]), RTL_TEXTENCODING_ASCII_US), + *this, + ::rtl::OUString(SQLState, sizeof(SQLState) - sizeof(SQLState[0]), RTL_TEXTENCODING_ASCII_US), + -1, + Any() ); + } + const ::rtl::OUString *pSchemaPat = NULL; if(schema.toChar() != '%') _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits