@@ -477,6 +477,9 @@ SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data)
477
477
var = php_strtok_r (res , separator , & strtok_buf );
478
478
479
479
while (var ) {
480
+ size_t val_len ;
481
+ size_t new_val_len ;
482
+
480
483
val = strchr (var , '=' );
481
484
482
485
if (arg == PARSE_COOKIE ) {
@@ -495,29 +498,25 @@ SAPI_API SAPI_TREAT_DATA_FUNC(php_default_treat_data)
495
498
}
496
499
497
500
if (val ) { /* have a value */
498
- size_t val_len ;
499
- size_t new_val_len ;
500
501
501
502
* val ++ = '\0' ;
502
- php_url_decode ( var , strlen ( var ));
503
- val_len = php_url_decode ( val , strlen ( val ));
504
- val = estrndup (val , val_len );
505
- if ( sapi_module . input_filter ( arg , var , & val , val_len , & new_val_len )) {
506
- php_register_variable_safe ( var , val , new_val_len , & array );
503
+
504
+ if ( arg == PARSE_COOKIE ) {
505
+ val_len = php_raw_url_decode (val , strlen ( val ) );
506
+ } else {
507
+ val_len = php_url_decode ( val , strlen ( val ) );
507
508
}
508
- efree (val );
509
509
} else {
510
- size_t val_len ;
511
- size_t new_val_len ;
512
-
513
- php_url_decode (var , strlen (var ));
514
- val_len = 0 ;
515
- val = estrndup ("" , val_len );
516
- if (sapi_module .input_filter (arg , var , & val , val_len , & new_val_len )) {
517
- php_register_variable_safe (var , val , new_val_len , & array );
518
- }
519
- efree (val );
510
+ val = "" ;
511
+ val_len = 0 ;
512
+ }
513
+
514
+ val = estrndup (val , val_len );
515
+ php_url_decode (var , strlen (var ));
516
+ if (sapi_module .input_filter (arg , var , & val , val_len , & new_val_len )) {
517
+ php_register_variable_safe (var , val , new_val_len , & array );
520
518
}
519
+ efree (val );
521
520
next_cookie :
522
521
var = php_strtok_r (NULL , separator , & strtok_buf );
523
522
}
0 commit comments