mirror of
https://github.com/owasp-modsecurity/ModSecurity.git
synced 2025-08-17 06:06:08 +03:00
Merge pull request #3269 from marcstern/v2/pr/apr_mutex_create
Fix apr_global_mutex_create() usage
This commit is contained in:
commit
1121ef0bed
4
CHANGES
4
CHANGES
@ -1,7 +1,9 @@
|
|||||||
(to be released) - 2.9.x
|
(to be released) - 2.9.x
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
* handle errors from apr_global_mutex_lock
|
* Fixed apr_global_mutex_create() usage (no filename)
|
||||||
|
[PR #3269 - @marcstern]
|
||||||
|
* handle errors from apr_global_mutex_lock
|
||||||
[PR #3257 - @marcstern]
|
[PR #3257 - @marcstern]
|
||||||
|
|
||||||
03 Sep 2024 - 2.9.8
|
03 Sep 2024 - 2.9.8
|
||||||
|
@ -123,30 +123,7 @@ msc_engine *modsecurity_create(apr_pool_t *mp, int processing_mode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int acquire_global_lock(apr_global_mutex_t **lock, apr_pool_t *mp) {
|
int acquire_global_lock(apr_global_mutex_t **lock, apr_pool_t *mp) {
|
||||||
apr_status_t rc;
|
apr_status_t rc = apr_global_mutex_create(lock, NULL, APR_LOCK_DEFAULT, mp);
|
||||||
apr_file_t *lock_name;
|
|
||||||
const char *temp_dir;
|
|
||||||
const char *filename = NULL;
|
|
||||||
|
|
||||||
// get platform temp dir
|
|
||||||
rc = apr_temp_dir_get(&temp_dir, mp);
|
|
||||||
if (rc != APR_SUCCESS) {
|
|
||||||
ap_log_perror(APLOG_MARK, APLOG_ERR, 0, mp, "ModSecurity: Could not get temp dir");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
// use temp path template for lock files
|
|
||||||
char *path = apr_pstrcat(mp, temp_dir, GLOBAL_LOCK_TEMPLATE, NULL);
|
|
||||||
|
|
||||||
rc = apr_file_mktemp(&lock_name, path, 0, mp);
|
|
||||||
if (rc != APR_SUCCESS) {
|
|
||||||
ap_log_perror(APLOG_MARK, APLOG_ERR, 0, mp, " ModSecurity: Could not create temporary file for global lock");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
// below func always return APR_SUCCESS
|
|
||||||
apr_file_name_get(&filename, lock_name);
|
|
||||||
|
|
||||||
rc = apr_global_mutex_create(lock, filename, APR_LOCK_DEFAULT, mp);
|
|
||||||
if (rc != APR_SUCCESS) {
|
if (rc != APR_SUCCESS) {
|
||||||
ap_log_perror(APLOG_MARK, APLOG_ERR, 0, mp, " ModSecurity: Could not create global mutex");
|
ap_log_perror(APLOG_MARK, APLOG_ERR, 0, mp, " ModSecurity: Could not create global mutex");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -135,8 +135,6 @@ typedef struct msc_parm msc_parm;
|
|||||||
|
|
||||||
#define FATAL_ERROR "ModSecurity: Fatal error (memory allocation or unexpected internal error)!"
|
#define FATAL_ERROR "ModSecurity: Fatal error (memory allocation or unexpected internal error)!"
|
||||||
|
|
||||||
#define GLOBAL_LOCK_TEMPLATE "/modsec-lock-tmp.XXXXXX"
|
|
||||||
|
|
||||||
extern DSOLOCAL char *new_server_signature;
|
extern DSOLOCAL char *new_server_signature;
|
||||||
extern DSOLOCAL char *real_server_signature;
|
extern DSOLOCAL char *real_server_signature;
|
||||||
extern DSOLOCAL char *chroot_dir;
|
extern DSOLOCAL char *chroot_dir;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user