diff Framework/MySQL/MySQLParameters.cpp @ 23:b2ff1cd2907a

handling of implicit transactions in DatabaseManager
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 12 Jul 2018 10:44:17 +0200
parents 1e9bad493475
children 6a574d810b98
line wrap: on
line diff
--- a/Framework/MySQL/MySQLParameters.cpp	Wed Jul 11 14:39:59 2018 +0200
+++ b/Framework/MySQL/MySQLParameters.cpp	Thu Jul 12 10:44:17 2018 +0200
@@ -104,6 +104,22 @@
   
   void MySQLParameters::SetDatabase(const std::string& database)
   {
+    if (database.empty())
+    {
+      LOG(ERROR) << "Empty database name";
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+    }
+    
+    for (size_t i = 0; i < database.length(); i++)
+    {
+      if (!isalnum(database [i]))
+      {
+        LOG(ERROR) << "Only alphanumeric characters are allowed in a "
+                   << "MySQL database name: \"" << database << "\"";
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);          
+      }
+    }
+    
     database_ = database;
   }