cmd: Don't parse colons as stream separators when splitting paths.

Frédéric Delanoy frederic.delanoy at gmail.com
Mon Aug 29 11:06:40 CDT 2011


On Sun, Aug 28, 2011 at 00:39, Octavian Voicu <octavian.voicu at gmail.com> wrote:
> Fixes an infinite recursion when running a command such as "del file.txt /S"
> in a directory that has some subdirectory with a colon in its name.
>
> The filename:stream syntax can be used on native to access alternate data
> streams on NTFS partitions. Such support would obviously need to be
> implemented by the underlying filesystem, so there is no point in parsing
> this is Wine.
>
> ---
>  programs/cmd/batch.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/programs/cmd/batch.c b/programs/cmd/batch.c
> index 03c92ee..bbefcfb 100644
> --- a/programs/cmd/batch.c
> +++ b/programs/cmd/batch.c
> @@ -222,8 +222,8 @@ void WCMD_splitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHA
>        } else if (drv)
>                *drv = '\0';
>
> -       /* search for end of string or stream separator */
> -       for(end=path; *end && *end!=':'; )
> +       /* search for end of string */
> +       for(end=path; *end; )
>                end++;
>
>        /* search for begin of file extension */
> --

Might be a good idea to add a simple testcase



More information about the wine-devel mailing list