@@ -3693,17 +3693,18 @@ PHP_METHOD(Phar, offsetSet)
3693
3693
size_t fname_len , cont_len ;
3694
3694
zval * zresource ;
3695
3695
3696
+ if (zend_parse_parameters_ex (ZEND_PARSE_PARAMS_QUIET , ZEND_NUM_ARGS (), "pr" , & fname , & fname_len , & zresource ) == FAILURE
3697
+ && zend_parse_parameters (ZEND_NUM_ARGS (), "ps" , & fname , & fname_len , & cont_str , & cont_len ) == FAILURE ) {
3698
+ RETURN_THROWS ();
3699
+ }
3700
+
3696
3701
PHAR_ARCHIVE_OBJECT ();
3697
3702
3698
3703
if (PHAR_G (readonly ) && !phar_obj -> archive -> is_data ) {
3699
3704
zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Write operations disabled by the php.ini setting phar.readonly" );
3700
3705
RETURN_THROWS ();
3701
3706
}
3702
3707
3703
- if (zend_parse_parameters_ex (ZEND_PARSE_PARAMS_QUIET , ZEND_NUM_ARGS (), "pr" , & fname , & fname_len , & zresource ) == FAILURE
3704
- && zend_parse_parameters (ZEND_NUM_ARGS (), "ps" , & fname , & fname_len , & cont_str , & cont_len ) == FAILURE ) {
3705
- RETURN_THROWS ();
3706
- }
3707
3708
if (fname_len == sizeof (".phar/stub.php" )- 1 && !memcmp (fname , ".phar/stub.php" , sizeof (".phar/stub.php" )- 1 )) {
3708
3709
zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Cannot set stub \".phar/stub.php\" directly in phar \"%s\", use setStub" , phar_obj -> archive -> fname );
3709
3710
RETURN_THROWS ();
@@ -3730,17 +3731,17 @@ PHP_METHOD(Phar, offsetUnset)
3730
3731
size_t fname_len ;
3731
3732
phar_entry_info * entry ;
3732
3733
3734
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "p" , & fname , & fname_len ) == FAILURE ) {
3735
+ RETURN_THROWS ();
3736
+ }
3737
+
3733
3738
PHAR_ARCHIVE_OBJECT ();
3734
3739
3735
3740
if (PHAR_G (readonly ) && !phar_obj -> archive -> is_data ) {
3736
3741
zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Write operations disabled by the php.ini setting phar.readonly" );
3737
3742
RETURN_THROWS ();
3738
3743
}
3739
3744
3740
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "p" , & fname , & fname_len ) == FAILURE ) {
3741
- RETURN_THROWS ();
3742
- }
3743
-
3744
3745
if (zend_hash_str_exists (& phar_obj -> archive -> manifest , fname , (uint32_t ) fname_len )) {
3745
3746
if (NULL != (entry = zend_hash_str_find_ptr (& phar_obj -> archive -> manifest , fname , (uint32_t ) fname_len ))) {
3746
3747
if (entry -> is_deleted ) {
@@ -4013,14 +4014,14 @@ PHP_METHOD(Phar, setMetadata)
4013
4014
char * error ;
4014
4015
zval * metadata ;
4015
4016
4016
- if (PHAR_G (readonly ) && !phar_obj -> archive -> is_data ) {
4017
- zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Write operations disabled by the php.ini setting phar.readonly" );
4017
+ if (zend_parse_parameters (ZEND_NUM_ARGS (), "z" , & metadata ) == FAILURE ) {
4018
4018
RETURN_THROWS ();
4019
4019
}
4020
4020
4021
4021
PHAR_ARCHIVE_OBJECT ();
4022
4022
4023
- if (zend_parse_parameters (ZEND_NUM_ARGS (), "z" , & metadata ) == FAILURE ) {
4023
+ if (PHAR_G (readonly ) && !phar_obj -> archive -> is_data ) {
4024
+ zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Write operations disabled by the php.ini setting phar.readonly" );
4024
4025
RETURN_THROWS ();
4025
4026
}
4026
4027
@@ -4049,14 +4050,14 @@ PHP_METHOD(Phar, delMetadata)
4049
4050
{
4050
4051
char * error ;
4051
4052
4052
- if (PHAR_G (readonly ) && !phar_obj -> archive -> is_data ) {
4053
- zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Write operations disabled by the php.ini setting phar.readonly" );
4053
+ if (zend_parse_parameters_none () == FAILURE ) {
4054
4054
RETURN_THROWS ();
4055
4055
}
4056
4056
4057
4057
PHAR_ARCHIVE_OBJECT ();
4058
4058
4059
- if (zend_parse_parameters_none () == FAILURE ) {
4059
+ if (PHAR_G (readonly ) && !phar_obj -> archive -> is_data ) {
4060
+ zend_throw_exception_ex (spl_ce_BadMethodCallException , 0 , "Write operations disabled by the php.ini setting phar.readonly" );
4060
4061
RETURN_THROWS ();
4061
4062
}
4062
4063
@@ -4305,6 +4306,7 @@ PHP_METHOD(Phar, extractTo)
4305
4306
4306
4307
ZEND_PARSE_PARAMETERS_START (1 , 3 )
4307
4308
Z_PARAM_PATH (pathto , pathto_len )
4309
+ Z_PARAM_OPTIONAL
4308
4310
Z_PARAM_STR_OR_ARRAY_HT_OR_NULL (filename , files_ht )
4309
4311
Z_PARAM_BOOL (overwrite )
4310
4312
ZEND_PARSE_PARAMETERS_END ();
0 commit comments