Mercurial > hg > orthanc-databases
diff Framework/MySQL/MySQLDatabase.cpp @ 24:17f849b2af34
sharing plugin initialization code
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 12 Jul 2018 12:17:39 +0200 |
parents | b2ff1cd2907a |
children | 6a574d810b98 |
line wrap: on
line diff
--- a/Framework/MySQL/MySQLDatabase.cpp Thu Jul 12 10:44:17 2018 +0200 +++ b/Framework/MySQL/MySQLDatabase.cpp Thu Jul 12 12:17:39 2018 +0200 @@ -300,18 +300,6 @@ } - static void CheckAlphanumericString(const std::string& name) - { - for (size_t i = 0; i < name.length(); i++) - { - if (!isalnum(name[i])) - { - throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); - } - } - } - - bool MySQLDatabase::DoesTableExist(MySQLTransaction& transaction, const std::string& name) { @@ -320,7 +308,10 @@ throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); } - CheckAlphanumericString(name); + if (!IsAlphanumericString(name)) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); + } Query query("SELECT COUNT(*) FROM information_schema.TABLES WHERE " "(TABLE_SCHEMA = ${database}) AND (TABLE_NAME = ${table})", true); @@ -349,7 +340,10 @@ throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); } - CheckAlphanumericString(name); + if (!IsAlphanumericString(name)) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); + } Query query("SELECT COUNT(*) FROM information_schema.SCHEMATA " "WHERE SCHEMA_NAME = ${database}", true); @@ -464,4 +458,18 @@ { mysql_library_end(); } + + + bool MySQLDatabase::IsAlphanumericString(const std::string& s) + { + for (size_t i = 0; i < s.length(); i++) + { + if (!isalnum(s[i])) + { + return false; + } + } + + return true; + } }