@@ -104,11 +104,14 @@ static apr_table_t *collection_retrieve_ex(apr_sdbm_t *existing_dbm, modsec_rec
104
104
/**
105
105
* This is required for mpm-itk & mod_ruid2, though should be harmless for other implementations
106
106
*/
107
- char * username ;
107
+ char * userinfo ;
108
108
apr_uid_t uid ;
109
109
apr_gid_t gid ;
110
110
apr_uid_current (& uid , & gid , msr -> mp );
111
- apr_uid_name_get (& username , uid , msr -> mp );
111
+ rc = apr_uid_name_get (& userinfo , uid , msr -> mp );
112
+ if (rc != APR_SUCCESS ) {
113
+ userinfo = apr_psprintf (msr -> mp , "%u" , uid );
114
+ }
112
115
113
116
if (msr -> txcfg -> data_dir == NULL ) {
114
117
msr_log (msr , 1 , "collection_retrieve_ex: Unable to retrieve collection (name \"%s\", key \"%s\"). Use "
@@ -117,7 +120,7 @@ static apr_table_t *collection_retrieve_ex(apr_sdbm_t *existing_dbm, modsec_rec
117
120
goto cleanup ;
118
121
}
119
122
120
- dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , username , "-" , col_name , NULL );
123
+ dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , userinfo , "-" , col_name , NULL );
121
124
122
125
if (msr -> txcfg -> debuglog_level >= 9 ) {
123
126
msr_log (msr , 9 , "collection_retrieve_ex: collection_retrieve_ex: Retrieving collection (name \"%s\", filename \"%s\")" ,log_escape (msr -> mp , col_name ),
@@ -385,11 +388,14 @@ int collection_store(modsec_rec *msr, apr_table_t *col) {
385
388
/**
386
389
* This is required for mpm-itk & mod_ruid2, though should be harmless for other implementations
387
390
*/
388
- char * username ;
391
+ char * userinfo ;
389
392
apr_uid_t uid ;
390
393
apr_gid_t gid ;
391
394
apr_uid_current (& uid , & gid , msr -> mp );
392
- apr_uid_name_get (& username , uid , msr -> mp );
395
+ rc = apr_uid_name_get (& userinfo , uid , msr -> mp );
396
+ if (rc != APR_SUCCESS ) {
397
+ userinfo = apr_psprintf (msr -> mp , "%u" , uid );
398
+ }
393
399
394
400
var_name = (msc_string * )apr_table_get (col , "__name" );
395
401
if (var_name == NULL ) {
@@ -409,7 +415,7 @@ int collection_store(modsec_rec *msr, apr_table_t *col) {
409
415
}
410
416
411
417
// ENH: lowercase the var name in the filename
412
- dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , username , "-" , var_name -> value , NULL );
418
+ dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , userinfo , "-" , var_name -> value , NULL );
413
419
414
420
if (msr -> txcfg -> debuglog_level >= 9 ) {
415
421
msr_log (msr , 9 , "collection_store: Retrieving collection (name \"%s\", filename \"%s\")" ,log_escape (msr -> mp , var_name -> value ),
@@ -675,11 +681,14 @@ int collections_remove_stale(modsec_rec *msr, const char *col_name) {
675
681
/**
676
682
* This is required for mpm-itk & mod_ruid2, though should be harmless for other implementations
677
683
*/
678
- char * username ;
684
+ char * userinfo ;
679
685
apr_uid_t uid ;
680
686
apr_gid_t gid ;
681
687
apr_uid_current (& uid , & gid , msr -> mp );
682
- apr_uid_name_get (& username , uid , msr -> mp );
688
+ rc = apr_uid_name_get (& userinfo , uid , msr -> mp );
689
+ if (rc != APR_SUCCESS ) {
690
+ userinfo = apr_psprintf (msr -> mp , "%u" , uid );
691
+ }
683
692
684
693
if (msr -> txcfg -> data_dir == NULL ) {
685
694
/* The user has been warned about this problem enough times already by now.
@@ -690,9 +699,9 @@ int collections_remove_stale(modsec_rec *msr, const char *col_name) {
690
699
}
691
700
692
701
if (strstr (col_name ,"USER" ) || strstr (col_name ,"SESSION" ) || strstr (col_name , "RESOURCE" ))
693
- dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , username , "-" , msr -> txcfg -> webappid , "_" , col_name , NULL );
702
+ dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , userinfo , "-" , msr -> txcfg -> webappid , "_" , col_name , NULL );
694
703
else
695
- dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , username , "-" , col_name , NULL );
704
+ dbm_filename = apr_pstrcat (msr -> mp , msr -> txcfg -> data_dir , "/" , userinfo , "-" , col_name , NULL );
696
705
697
706
if (msr -> txcfg -> debuglog_level >= 9 ) {
698
707
msr_log (msr , 9 , "collections_remove_stale: Retrieving collection (name \"%s\", filename \"%s\")" ,log_escape (msr -> mp , col_name ),
0 commit comments