@@ -716,14 +716,20 @@ public void directoryCharsSanitizer() throws Exception {
716716 }
717717 {
718718 String source = (String ) source ();
719- source = source .replaceAll ("\\ .|[/\\ \\ ]" , "" );
719+ source = source .replaceAll ("\\ .|[/\\ \\ ]" , "- " );
720720 sink (source ); // Safe
721721 }
722722 {
723723 String source = (String ) source ();
724- source = source .replaceAll ("[.][.]|[/\\ \\ ]" , "" );
724+ source = source .replaceAll ("[.][.]|[/\\ \\ ]" , "_ " );
725725 sink (source ); // Safe
726726 }
727+ {
728+ String source = (String ) source ();
729+ // test a not-accepted replacement character
730+ source = source .replaceAll ("[.][.]|[/\\ \\ ]" , "/" );
731+ sink (source ); // $ hasTaintFlow
732+ }
727733 {
728734 String source = (String ) source ();
729735 source = source .replaceAll (".|[/\\ \\ ]" , "" );
@@ -761,6 +767,24 @@ public void directoryCharsSanitizer() throws Exception {
761767 source = source .replaceAll ("\\ ." , "" ).replaceAll ("/" , "" );
762768 sink (source ); // Safe
763769 }
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+ }
764788 {
765789 String source = (String ) source ();
766790 source = source .replaceAll ("\\ ." , "" ).replaceAll ("/" , "" ).replaceAll ("\\ \\ " , "" );
0 commit comments