[Libreoffice-commits] core.git: 2 commits - connectivity/source

Lionel Elie Mamane lionel at mamane.lu
Tue Dec 17 03:16:46 PST 2013


 connectivity/source/drivers/hsqldb/HUser.cxx |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

New commits:
commit edbbc471bcd9db9b366c32e9d16d965460cd3960
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Tue Dec 17 12:14:15 2013 +0100

    HSQLDB: correct syntax of change password from MySQL to HSQLDB
    
    Change-Id: Iacf60c456912f2e38c7a082e48c45164e79c1097

diff --git a/connectivity/source/drivers/hsqldb/HUser.cxx b/connectivity/source/drivers/hsqldb/HUser.cxx
index 0dfcd2c..e1c2a75 100644
--- a/connectivity/source/drivers/hsqldb/HUser.cxx
+++ b/connectivity/source/drivers/hsqldb/HUser.cxx
@@ -272,10 +272,13 @@ void SAL_CALL OHSQLUser::changePassword( const OUString& /*oldPassword*/, const
 
     Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
 
-    OUString sAlterPwd = "SET PASSWORD FOR " +
-        ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), m_Name) +
-        "@\"%\" = PASSWORD('" + newPassword + "')";
+    if( m_Name != xMeta->getUserName() )
+    {
+        ::dbtools::throwGenericSQLException("HSQLDB can only change password of the current user.", *this);
+    }
 
+    OUString sAlterPwd = "SET PASSWORD " +
+        ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), newPassword);
 
     Reference<XStatement> xStmt = m_xConnection->createStatement();
     if ( xStmt.is() )
commit 9203ae338fdbcaf614be8436172e05a24fd7d754
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date:   Tue Dec 17 12:00:46 2013 +0100

    HSQLDB: quote usernames
    
    Change-Id: I8384920bc55dafb2cc6581fe82f38d4e2659cc3d

diff --git a/connectivity/source/drivers/hsqldb/HUser.cxx b/connectivity/source/drivers/hsqldb/HUser.cxx
index 297591e..0dfcd2c 100644
--- a/connectivity/source/drivers/hsqldb/HUser.cxx
+++ b/connectivity/source/drivers/hsqldb/HUser.cxx
@@ -229,7 +229,7 @@ void SAL_CALL OHSQLUser::grantPrivileges( const OUString& objName, sal_Int32 obj
         Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
         OUString sGrant = "GRANT " +  sPrivs +
             " ON " + ::dbtools::quoteTableName(xMeta,objName,::dbtools::eInDataManipulation) +
-            " TO " + m_Name;
+            " TO " + ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), m_Name);
 
         Reference<XStatement> xStmt = m_xConnection->createStatement();
         if(xStmt.is())
@@ -255,7 +255,7 @@ void SAL_CALL OHSQLUser::revokePrivileges( const OUString& objName, sal_Int32 ob
         Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
         OUString sGrant = "REVOKE " + sPrivs +
             " ON " + ::dbtools::quoteTableName(xMeta,objName,::dbtools::eInDataManipulation) +
-            " FROM " + m_Name;
+            " FROM " + ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), m_Name);
 
         Reference<XStatement> xStmt = m_xConnection->createStatement();
         if(xStmt.is())
@@ -269,8 +269,12 @@ void SAL_CALL OHSQLUser::changePassword( const OUString& /*oldPassword*/, const
 {
     ::osl::MutexGuard aGuard(m_aMutex);
     checkDisposed(OUser_BASE_RBHELPER::rBHelper.bDisposed);
+
+    Reference<XDatabaseMetaData> xMeta = m_xConnection->getMetaData();
+
     OUString sAlterPwd = "SET PASSWORD FOR " +
-        m_Name + "@\"%\" = PASSWORD('" + newPassword + "')";
+        ::dbtools::quoteName(xMeta->getIdentifierQuoteString(), m_Name) +
+        "@\"%\" = PASSWORD('" + newPassword + "')";
 
 
     Reference<XStatement> xStmt = m_xConnection->createStatement();


More information about the Libreoffice-commits mailing list