mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-09-30 03:34:29 +03:00
msr_global_mutex_lock: Handle errors from apr_global_mutex_lock
This commit is contained in:
@@ -125,12 +125,8 @@ static apr_table_t *collection_retrieve_ex(apr_sdbm_t *existing_dbm, modsec_rec
|
||||
|
||||
if (existing_dbm == NULL) {
|
||||
#ifdef GLOBAL_COLLECTION_LOCK
|
||||
rc = apr_global_mutex_lock(msr->modsecurity->dbm_lock);
|
||||
if (rc != APR_SUCCESS) {
|
||||
msr_log(msr, 1, "collection_retrieve_ex: Failed to lock proc mutex: %s",
|
||||
get_apr_error(msr->mp, rc));
|
||||
goto cleanup;
|
||||
}
|
||||
rc = msr_global_mutex_lock(msr, msr->modsecurity->dbm_lock, "collection_retrieve_ex");
|
||||
if (rc != APR_SUCCESS) goto cleanup;
|
||||
#endif
|
||||
rc = apr_sdbm_open(&dbm, dbm_filename, APR_READ | APR_SHARELOCK,
|
||||
CREATEMODE, msr->mp);
|
||||
@@ -222,12 +218,8 @@ static apr_table_t *collection_retrieve_ex(apr_sdbm_t *existing_dbm, modsec_rec
|
||||
if (apr_table_get(col, "KEY") == NULL) {
|
||||
if (existing_dbm == NULL) {
|
||||
#ifdef GLOBAL_COLLECTION_LOCK
|
||||
rc = apr_global_mutex_lock(msr->modsecurity->dbm_lock);
|
||||
if (rc != APR_SUCCESS) {
|
||||
msr_log(msr, 1, "collection_retrieve_ex: Failed to lock proc mutex: %s",
|
||||
get_apr_error(msr->mp, rc));
|
||||
goto cleanup;
|
||||
}
|
||||
rc = msr_global_mutex_lock(msr, msr->modsecurity->dbm_lock, "collection_retrieve_ex");
|
||||
if (rc != APR_SUCCESS) goto cleanup;
|
||||
#endif
|
||||
rc = apr_sdbm_open(&dbm, dbm_filename, APR_CREATE | APR_WRITE | APR_SHARELOCK,
|
||||
CREATEMODE, msr->mp);
|
||||
@@ -408,12 +400,8 @@ int collection_store(modsec_rec *msr, apr_table_t *col) {
|
||||
|
||||
#ifdef GLOBAL_COLLECTION_LOCK
|
||||
/* Need to lock to pull in the stored data again and apply deltas. */
|
||||
rc = apr_global_mutex_lock(msr->modsecurity->dbm_lock);
|
||||
if (rc != APR_SUCCESS) {
|
||||
msr_log(msr, 1, "collection_store: Failed to lock proc mutex: %s",
|
||||
get_apr_error(msr->mp, rc));
|
||||
goto error;
|
||||
}
|
||||
int ret = msr_global_mutex_lock(msr, msr->modsecurity->dbm_lock, "collection_store");
|
||||
if (ret != APR_SUCCESS) goto error;
|
||||
#endif
|
||||
|
||||
/* Delete IS_NEW on store. */
|
||||
@@ -684,12 +672,8 @@ int collections_remove_stale(modsec_rec *msr, const char *col_name) {
|
||||
}
|
||||
|
||||
#ifdef GLOBAL_COLLECTION_LOCK
|
||||
rc = apr_global_mutex_lock(msr->modsecurity->dbm_lock);
|
||||
if (rc != APR_SUCCESS) {
|
||||
msr_log(msr, 1, "collections_remove_stale: Failed to lock proc mutex: %s",
|
||||
get_apr_error(msr->mp, rc));
|
||||
goto error;
|
||||
}
|
||||
rc = msr_global_mutex_lock(msr, msr->modsecurity->dbm_lock, "collections_remove_stale");
|
||||
if (rc != APR_SUCCESS) goto error;
|
||||
#endif
|
||||
|
||||
rc = apr_sdbm_open(&dbm, dbm_filename, APR_CREATE | APR_WRITE | APR_SHARELOCK,
|
||||
|
Reference in New Issue
Block a user