@@ -2015,7 +2015,7 @@ static void add_sdl_to_cache(const char *fn, const char *uri, time_t t, sdlPtr s
2015
2015
#ifdef ZEND_WIN32
2016
2016
f = open (fn ,O_CREAT |O_WRONLY |O_EXCL |O_BINARY ,S_IREAD |S_IWRITE );
2017
2017
#else
2018
- f = open (fn ,O_CREAT |O_WRONLY |O_EXCL |O_BINARY ,S_IREAD |S_IWRITE | S_IROTH | S_IWOTH | S_IRGRP | S_IWGRP );
2018
+ f = open (fn ,O_CREAT |O_WRONLY |O_EXCL |O_BINARY ,S_IREAD |S_IWRITE );
2019
2019
#endif
2020
2020
if (f < 0 ) {return ;}
2021
2021
@@ -3117,16 +3117,24 @@ sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC)
3117
3117
unsigned char digest [16 ];
3118
3118
int len = strlen (SOAP_GLOBAL (cache_dir ));
3119
3119
time_t cached ;
3120
+ char * user = php_get_current_user ();
3121
+ int user_len = user ? strlen (user ) + 1 : 0 ;
3120
3122
3121
3123
md5str [0 ] = '\0' ;
3122
3124
PHP_MD5Init (& context );
3123
3125
PHP_MD5Update (& context , (unsigned char * )uri , uri_len );
3124
3126
PHP_MD5Final (digest , & context );
3125
3127
make_digest (md5str , digest );
3126
- key = emalloc (len + sizeof ("/wsdl-" )- 1 + sizeof (md5str ));
3128
+ key = emalloc (len + sizeof ("/wsdl-" )- 1 + user_len + sizeof (md5str ));
3127
3129
memcpy (key ,SOAP_GLOBAL (cache_dir ),len );
3128
3130
memcpy (key + len ,"/wsdl-" ,sizeof ("/wsdl-" )- 1 );
3129
- memcpy (key + len + sizeof ("/wsdl-" )- 1 ,md5str ,sizeof (md5str ));
3131
+ len += sizeof ("/wsdl-" )- 1 ;
3132
+ if (user_len ) {
3133
+ memcpy (key + len , user , user_len - 1 );
3134
+ len += user_len - 1 ;
3135
+ key [len ++ ] = '-' ;
3136
+ }
3137
+ memcpy (key + len ,md5str ,sizeof (md5str ));
3130
3138
3131
3139
if ((sdl = get_sdl_from_cache (key , uri , t - SOAP_GLOBAL (cache_ttl ), & cached TSRMLS_CC )) != NULL ) {
3132
3140
t = cached ;
0 commit comments