@@ -716,14 +716,20 @@ public void directoryCharsSanitizer() throws Exception {
716
716
}
717
717
{
718
718
String source = (String ) source ();
719
- source = source .replaceAll ("\\ .|[/\\ \\ ]" , "" );
719
+ source = source .replaceAll ("\\ .|[/\\ \\ ]" , "- " );
720
720
sink (source ); // Safe
721
721
}
722
722
{
723
723
String source = (String ) source ();
724
- source = source .replaceAll ("[.][.]|[/\\ \\ ]" , "" );
724
+ source = source .replaceAll ("[.][.]|[/\\ \\ ]" , "_ " );
725
725
sink (source ); // Safe
726
726
}
727
+ {
728
+ String source = (String ) source ();
729
+ // test a not-accepted replacement character
730
+ source = source .replaceAll ("[.][.]|[/\\ \\ ]" , "/" );
731
+ sink (source ); // $ hasTaintFlow
732
+ }
727
733
{
728
734
String source = (String ) source ();
729
735
source = source .replaceAll (".|[/\\ \\ ]" , "" );
@@ -761,6 +767,24 @@ public void directoryCharsSanitizer() throws Exception {
761
767
source = source .replaceAll ("\\ ." , "" ).replaceAll ("/" , "" );
762
768
sink (source ); // Safe
763
769
}
770
+ {
771
+ String source = (String ) source ();
772
+ // test a not-accepted replacement character in each call
773
+ source = source .replaceAll ("\\ ." , "/" ).replaceAll ("/" , "." );
774
+ sink (source ); // $ hasTaintFlow
775
+ }
776
+ {
777
+ String source = (String ) source ();
778
+ // test a not-accepted replacement character in first call
779
+ source = source .replaceAll ("\\ ." , "/" ).replaceAll ("/" , "-" );
780
+ sink (source ); // $ hasTaintFlow
781
+ }
782
+ {
783
+ String source = (String ) source ();
784
+ // test a not-accepted replacement character in second call
785
+ source = source .replaceAll ("\\ ." , "_" ).replaceAll ("/" , "." );
786
+ sink (source ); // $ hasTaintFlow
787
+ }
764
788
{
765
789
String source = (String ) source ();
766
790
source = source .replaceAll ("\\ ." , "" ).replaceAll ("/" , "" ).replaceAll ("\\ \\ " , "" );
0 commit comments