On Thu, 20 Apr 2023 18:39:59 GMT, Jorn Vernee <jver...@openjdk.org> wrote:

> Simpler reproducer:
> 
> ```
> bash -x ./make/scripts/fixpath.sh print '-Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> ```
> 
> Shows:
> 
> ```
> + print_command_line '-Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> + converted_args=
> + for arg in "$@"
> + [[ -Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED =~ ^@(.*$) 
> ]]
> + convert_path '-Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> + [[ -Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED =~ : ]]
> + arg='-Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> + winpath=
> + [[ -Djava.library.path=/mnt/h/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED =~ 
> ^([^/]*|-[^:=]*[:=]|.*file://|/[a-zA-Z:]{1,3}:?)(/mnt/)([a-z])(/[^/]+.*$) ]]
> + prefix=-Djava.library.path=
> + winpath='h:/xyz 
> --add-exports=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> + [[ 20 -eq 2 ]]
> + [[ '' != true ]]
> + winpath='h:\xyz 
> --add-exports=java.base\jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> + [[ h:\xyz 
> --add-exports=java.base\jdk.internal.org.objectweb.asm=ALL-UNNAMED != '' ]]
> + result='-Djava.library.path=h:\xyz 
> --add-exports=java.base\jdk.internal.org.objectweb.asm=ALL-UNNAMED'
> ```
> 
> i.e. fixpath thinks all of the stuff after `/mnt/h` is a part of the path

Do you know if fixpath will take unix-style path with spaces as input? If it 
should reject spaces, then we can run fixpath before quote and reject this 
quoted argument with space, which is known to be absent in unix paths.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/13550#issuecomment-1516973910

Reply via email to