@@ -129,6 +129,12 @@ msc_engine *modsecurity_create(apr_pool_t *mp, int processing_mode) {
129
129
*/
130
130
int modsecurity_init (msc_engine * msce , apr_pool_t * mp ) {
131
131
apr_status_t rc ;
132
+ apr_file_t * auditlog_lock_name ;
133
+ apr_file_t * geo_lock_name ;
134
+ apr_file_t * dbm_lock_name ;
135
+
136
+ // use temp path template for lock files
137
+ char * path = apr_pstrcat (p , temp_dir , "/modsec-lock-tmp.XXXXXX" , NULL );
132
138
133
139
msce -> auditlog_lock = msce -> geo_lock = NULL ;
134
140
#ifdef GLOBAL_COLLECTION_LOCK
@@ -146,11 +152,12 @@ int modsecurity_init(msc_engine *msce, apr_pool_t *mp) {
146
152
curl_global_init (CURL_GLOBAL_ALL );
147
153
#endif
148
154
/* Serial audit log mutext */
149
- tmpnam (auditlog_lock_name );
155
+ rc = apr_file_mktemp (& auditlog_lock_name , path , 0 , p )
156
+ if (rc != APR_SUCCESS ) {
157
+ return -1
158
+ }
150
159
rc = apr_global_mutex_create (& msce -> auditlog_lock , auditlog_lock_name , APR_LOCK_DEFAULT , mp );
151
160
if (rc != APR_SUCCESS ) {
152
- //ap_log_error(APLOG_MARK, APLOG_ERR, rv, s, "mod_security: Could not create modsec_auditlog_lock");
153
- //return HTTP_INTERNAL_SERVER_ERROR;
154
161
return -1 ;
155
162
}
156
163
@@ -168,7 +175,10 @@ int modsecurity_init(msc_engine *msce, apr_pool_t *mp) {
168
175
}
169
176
#endif /* SET_MUTEX_PERMS */
170
177
171
- tmpnam (geo_lock_name );
178
+ rc = apr_file_mktemp (& geo_lock_name , path , 0 , p )
179
+ if (rc != APR_SUCCESS ) {
180
+ return -1
181
+ }
172
182
rc = apr_global_mutex_create (& msce -> geo_lock , geo_lock_name , APR_LOCK_DEFAULT , mp );
173
183
if (rc != APR_SUCCESS ) {
174
184
return -1 ;
@@ -186,7 +196,10 @@ int modsecurity_init(msc_engine *msce, apr_pool_t *mp) {
186
196
#endif /* SET_MUTEX_PERMS */
187
197
188
198
#ifdef GLOBAL_COLLECTION_LOCK
189
- tmpnam (dbm_lock_name );
199
+ rc = apr_file_mktemp (& dbm_lock_name , path , 0 , p )
200
+ if (rc != APR_SUCCESS ) {
201
+ return -1
202
+ }
190
203
rc = apr_global_mutex_create (& msce -> dbm_lock , dbm_lock_name , APR_LOCK_DEFAULT , mp );
191
204
if (rc != APR_SUCCESS ) {
192
205
return -1 ;
0 commit comments