qemu-devel
[Top][All Lists]

## Re: [Qemu-devel] [PATCH] Fix double backslash problem in Windows

 From: Johannes Schindelin Subject: Re: [Qemu-devel] [PATCH] Fix double backslash problem in Windows Date: Wed, 9 Jan 2008 18:23:17 +0000 (GMT) User-agent: Alpine 1.00 (LSU 882 2007-12-20)

Hi,

On Wed, 9 Jan 2008, Anthony Liguori wrote:

> Laurent Vivier wrote:
> > Le mercredi 09 janvier 2008 à 11:40 +0100, andrzej zaborowski a écrit :
> >
> > > On 09/01/2008, Laurent Vivier <address@hidden> wrote:
> > >
> > > > Le mercredi 09 janvier 2008 à 10:31 +0100, Laurent Vivier a écrit :
> > > >
> > > > > Le mardi 08 janvier 2008 à 17:17 +0100, Hervé Poussineau a écrit :
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > On Windows, since December 2nd, files names provided in
> > > > > > command line have to double their backslash to work correctly,
> > > > > > for example: "-hda c:\\disks\\qemu.qcow" instead of -hda
> > > > > > c:\disks\qemu.qcow" This patch removes this need and reverts
> > > > > > back to Qemu 0.9.0 behaviour
> > > > > >
> > > > > > Hervé
> > > > > >
> > > > > >
> > > > > I have introduced this behavior to be able to use command line
> > > > > like "qemu -hda my\ file", IMHO your patch should be #ifdef for
> > > > > window only.
> > > > >
> > > > In fact, this is a wrong example, this case is managed by the
> > > > shell. A good example is when we have a filename with a '"' in it:
> > > >
> > > > qemu -hda 2\\\"file
> > > >
> > > > to open file 2"file
> > > >
> > > And the correct behaviour for that would be to open the file
> > > 2\"file, while
> > >
> > > qemu -hda 2\"file
> > >
> > > should open 2"file. The only character that we may need to handle
> > > specially should be the comma, I don't know if anyone cares.
> > >
> >
> > You're right... but "-hda" is an alias for "-drive
> > file="%s",index=%d,media=disk".
> >
> > So when you type "qemu -hda 2\"file", it becomes "qemu -drive
> > file="2"file",index=0,media=disk" which gives filename equal to
> > "2file,index=0,media=disk" instead of filename equal to 2"file with
> > option index and media.
> >
>
> The proper solution is to escape the files before doing the snprintf().

No, the proper solution is not to parse the argument _twice_.

Ciao,
Dscho