@@ -162,7 +162,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
162
162
{
163
163
phar_archive_data * phar ;
164
164
phar_entry_data * idata ;
165
- char * internal_file ;
165
+ const char * internal_file ;
166
166
char * error ;
167
167
HashTable * pharcontext ;
168
168
php_url * resource = NULL ;
@@ -189,7 +189,7 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
189
189
phar_request_initialize ();
190
190
191
191
/* strip leading "/" */
192
- internal_file = estrndup ( ZSTR_VAL (resource -> path ) + 1 , ZSTR_LEN ( resource -> path ) - 1 ) ;
192
+ internal_file = ZSTR_VAL (resource -> path ) + 1 ;
193
193
if (mode [0 ] == 'w' || (mode [0 ] == 'r' && mode [1 ] == '+' )) {
194
194
if (NULL == (idata = phar_get_or_create_entry_data (ZSTR_VAL (resource -> host ), ZSTR_LEN (resource -> host ), internal_file , strlen (internal_file ), mode , 0 , & error , 1 ))) {
195
195
if (error ) {
@@ -198,7 +198,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
198
198
} else {
199
199
php_stream_wrapper_log_error (wrapper , options , "phar error: file \"%s\" could not be created in phar \"%s\"" , internal_file , ZSTR_VAL (resource -> host ));
200
200
}
201
- efree (internal_file );
202
201
php_url_free (resource );
203
202
return NULL ;
204
203
}
@@ -207,7 +206,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
207
206
}
208
207
fpf = php_stream_alloc (& phar_ops , idata , NULL , mode );
209
208
php_url_free (resource );
210
- efree (internal_file );
211
209
212
210
if (context && Z_TYPE (context -> options ) != IS_UNDEF && (pzoption = zend_hash_str_find (HASH_OF (& context -> options ), "phar" , sizeof ("phar" )- 1 )) != NULL ) {
213
211
pharcontext = HASH_OF (pzoption );
@@ -237,15 +235,13 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
237
235
/* retrieve the stub */
238
236
if (FAILURE == phar_get_archive (& phar , ZSTR_VAL (resource -> host ), ZSTR_LEN (resource -> host ), NULL , 0 , NULL )) {
239
237
php_stream_wrapper_log_error (wrapper , options , "file %s is not a valid phar archive" , ZSTR_VAL (resource -> host ));
240
- efree (internal_file );
241
238
php_url_free (resource );
242
239
return NULL ;
243
240
}
244
241
if (phar -> is_tar || phar -> is_zip ) {
245
242
if ((FAILURE == phar_get_entry_data (& idata , ZSTR_VAL (resource -> host ), ZSTR_LEN (resource -> host ), ".phar/stub.php" , sizeof (".phar/stub.php" )- 1 , "r" , 0 , & error , 0 )) || !idata ) {
246
243
goto idata_error ;
247
244
}
248
- efree (internal_file );
249
245
if (opened_path ) {
250
246
* opened_path = strpprintf (MAXPATHLEN , "%s" , phar -> fname );
251
247
}
@@ -256,7 +252,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
256
252
if (stream == NULL ) {
257
253
if (UNEXPECTED (FAILURE == phar_open_archive_fp (phar ))) {
258
254
php_stream_wrapper_log_error (wrapper , options , "phar error: could not reopen phar \"%s\"" , ZSTR_VAL (resource -> host ));
259
- efree (internal_file );
260
255
php_url_free (resource );
261
256
return NULL ;
262
257
}
@@ -285,7 +280,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
285
280
if (opened_path ) {
286
281
* opened_path = strpprintf (MAXPATHLEN , "%s" , phar -> fname );
287
282
}
288
- efree (internal_file );
289
283
goto phar_stub ;
290
284
}
291
285
}
@@ -298,7 +292,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
298
292
} else {
299
293
php_stream_wrapper_log_error (wrapper , options , "phar error: \"%s\" is not a file in phar \"%s\"" , internal_file , ZSTR_VAL (resource -> host ));
300
294
}
301
- efree (internal_file );
302
295
php_url_free (resource );
303
296
return NULL ;
304
297
}
@@ -317,7 +310,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
317
310
php_stream_wrapper_log_error (wrapper , options , "%s" , error );
318
311
efree (error );
319
312
phar_entry_delref (idata );
320
- efree (internal_file );
321
313
return NULL ;
322
314
}
323
315
@@ -340,7 +332,6 @@ static php_stream * phar_wrapper_open_url(php_stream_wrapper *wrapper, const cha
340
332
if (opened_path ) {
341
333
* opened_path = zend_strpprintf_unchecked (MAXPATHLEN , "phar://%s/%S" , idata -> phar -> fname , idata -> internal_file -> filename );
342
334
}
343
- efree (internal_file );
344
335
phar_stub :
345
336
fpf = php_stream_alloc (& phar_ops , idata , NULL , mode );
346
337
return fpf ;
@@ -662,7 +653,8 @@ static int phar_wrapper_stat(php_stream_wrapper *wrapper, const char *url, int f
662
653
static int phar_wrapper_unlink (php_stream_wrapper * wrapper , const char * url , int options , php_stream_context * context ) /* {{{ */
663
654
{
664
655
php_url * resource ;
665
- char * internal_file , * error ;
656
+ const char * internal_file ;
657
+ char * error ;
666
658
int internal_file_len ;
667
659
phar_entry_data * idata ;
668
660
phar_archive_data * pphar ;
@@ -695,7 +687,7 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int
695
687
}
696
688
697
689
/* need to copy to strip leading "/", will get touched again */
698
- internal_file = estrndup ( ZSTR_VAL (resource -> path ) + 1 , ZSTR_LEN ( resource -> path ) - 1 ) ;
690
+ internal_file = ZSTR_VAL (resource -> path ) + 1 ;
699
691
internal_file_len = ZSTR_LEN (resource -> path ) - 1 ;
700
692
if (FAILURE == phar_get_entry_data (& idata , ZSTR_VAL (resource -> host ), ZSTR_LEN (resource -> host ), internal_file , internal_file_len , "r" , 0 , & error , 1 )) {
701
693
/* constraints of fp refcount were not met */
@@ -705,7 +697,6 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int
705
697
} else {
706
698
php_stream_wrapper_log_error (wrapper , options , "unlink of \"%s\" failed, file does not exist" , url );
707
699
}
708
- efree (internal_file );
709
700
php_url_free (resource );
710
701
return 0 ;
711
702
}
@@ -715,13 +706,11 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, const char *url, int
715
706
if (idata -> internal_file -> fp_refcount > 1 ) {
716
707
/* more than just our fp resource is open for this file */
717
708
php_stream_wrapper_log_error (wrapper , options , "phar error: \"%s\" in phar \"%s\", has open file pointers, cannot unlink" , internal_file , ZSTR_VAL (resource -> host ));
718
- efree (internal_file );
719
709
php_url_free (resource );
720
710
phar_entry_delref (idata );
721
711
return 0 ;
722
712
}
723
713
php_url_free (resource );
724
- efree (internal_file );
725
714
phar_entry_remove (idata , & error );
726
715
if (error ) {
727
716
php_stream_wrapper_log_error (wrapper , options , "%s" , error );
0 commit comments