[Libguestfs] [PATCH 2/5] daemon error handling: fix case_sensitive_path for Windows.

Richard W.M. Jones rjones at redhat.com
Mon Nov 30 15:52:05 UTC 2009


On Mon, Nov 30, 2009 at 03:45:20PM +0000, Matthew Booth wrote:
> On 30/11/09 14:42, Richard W.M. Jones wrote:
>>> From 23452a49f51458ca39ca4c2c953169f32ed67067 Mon Sep 17 00:00:00 2001
>> From: Richard Jones<rjones at redhat.com>
>> Date: Fri, 27 Nov 2009 13:54:11 +0000
>> Subject: [PATCH 2/5] daemon error handling: fix case_sensitive_path for Windows.
>>
>> ---
>>   daemon/realpath.c |   12 ++++++++++++
>>   1 files changed, 12 insertions(+), 0 deletions(-)
>>
>> diff --git a/daemon/realpath.c b/daemon/realpath.c
>> index e6c81ef..0edb1d0 100644
>> --- a/daemon/realpath.c
>> +++ b/daemon/realpath.c
>> @@ -69,6 +69,7 @@ do_realpath (const char *path)
>>   char *
>>   do_case_sensitive_path (const char *path)
>>   {
>> +#ifndef WIN32
>>     char ret[PATH_MAX+1] = "/";
>>     size_t next = 1;
>>     int fd_cwd;
>> @@ -196,4 +197,15 @@ do_case_sensitive_path (const char *path)
>>    error:
>>     close (fd_cwd);
>>     return NULL;
>> +#else /* WIN32 */
>> +  /* On Win32 paths are always handled case insensitively, so there is
>> +   * no need for this function to modify the path in any way.
>> +   */
>> +  char *ret = strdup (path);
>> +  if (ret == NULL) {
>> +    reply_with_perror ("strdup");
>> +    return NULL;
>> +  }
>> +  return ret;
>> +#endif /* WIN32 */
>>   }
>> -- 1.6.5.2
>
> I'm not convinced by this. I know this call isn't required on Windows.  
> However, making it a no-op on a Windows appliance is one of those minor,  
> unexpected behaviour differences which is going to bite you in the arse  
> later. For example, storing the output of case_sensitive_path for later  
> use by a Linux appliance. It is feasible to keep the behaviour on 
> Windows?

If we do nothing, then we'll probably get the same behaviour.  Hard
to tell without a real Windows appliance to test against though ...

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list