Merge pull request #4903 from sysown/v3.0-sqlite3_permission

exit if database file is not writable
v3.0_auth_negotiation
René Cannaò 1 year ago committed by GitHub
commit 523239f856
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -520,6 +520,10 @@ bool ProxySQL_Admin::init(const bootstrap_info_t& bootstrap_info) {
bool admindb_file_exists=Proxy_file_exists(GloVars.admindb);
configdb=new SQLite3DB();
if (access(GloVars.admindb, W_OK) != 0) {
proxy_error("Database file '%s' is not writable\n", GloVars.admindb);
exit(EXIT_SUCCESS);
}
configdb->open((char *)GloVars.admindb, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX);
// Fully synchronous is not required. See to #1055
// https://sqlite.org/pragma.html#pragma_synchronous

@ -1134,6 +1134,10 @@ void ProxySQL_Admin::flush_configdb() { // see #923
admindb->execute((char *)"DETACH DATABASE disk");
delete configdb;
configdb=new SQLite3DB();
if (access(GloVars.admindb, W_OK) != 0) {
proxy_error("Database file '%s' is not writable\n", GloVars.admindb);
exit(EXIT_SUCCESS);
}
configdb->open((char *)GloVars.admindb, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_FULLMUTEX);
__attach_db(admindb, configdb, (char *)"disk");
// Fully synchronous is not required. See to #1055

Loading…
Cancel
Save