[Libguestfs] [PATCH libguestfs] avoid "syntax-check" failure

Jim Meyering jim at meyering.net
Mon Nov 9 19:21:59 UTC 2009


Richard W.M. Jones wrote:
> On Mon, Nov 09, 2009 at 03:08:21PM +0100, Jim Meyering wrote:
>> syntax-check failed with this:
>>
>>     fuse/guestmount.c:364:    free ((char *) r);
>>     maint.mk: don't cast free argument
>>     make: *** [sc_cast_of_argument_to_free] Error 1
>>
>> >From ed007e673b00ec545fcff2a708a57d98075c6460 Mon Sep 17 00:00:00 2001
>> From: Jim Meyering <meyering at redhat.com>
>> Date: Mon, 9 Nov 2009 15:06:36 +0100
>> Subject: [PATCH libguestfs] avoid "syntax-check" failure
>>
>> * fuse/guestmount.c (fg_readlink): Don't declare "r" as const,
>> as it is freed.
>> ---
>>  fuse/guestmount.c |    4 ++--
>>  1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/fuse/guestmount.c b/fuse/guestmount.c
>> index 910ec34..04a6a29 100644
>> --- a/fuse/guestmount.c
>> +++ b/fuse/guestmount.c
>> @@ -339,7 +339,7 @@ fg_access (const char *path, int mask)
>>  static int
>>  fg_readlink (const char *path, char *buf, size_t size)
>>  {
>> -  const char *r;
>> +  char *r;
>>    int free_it = 0;
>>
>>    r = rlc_lookup (path);
>> @@ -361,7 +361,7 @@ fg_readlink (const char *path, char *buf, size_t size)
>>    buf[len] = '\0';
>>
>>    if (free_it)
>> -    free ((char *) r);
>> +    free (r);
>>
>>    return 0;
>>  }
>> --
>> 1.6.5.2.351.g0943
>
> Surely this doesn't compile now, because rlc_lookup() returns
> a const char * which is now being assigned to a char *.

You're right.
Hadn't finished the str*cmp -> STR*EQ changes so it didn't compile yet.

This isn't pretty but does the job.

An alternative is to exempt the entire file from this test
by adding a new .x-sc... file.

>From 27e5dc065892802214860686b30abfe208fcca8b Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering at redhat.com>
Date: Mon, 9 Nov 2009 15:06:36 +0100
Subject: [PATCH libguestfs] avoid "syntax-check" failure

* fuse/guestmount.c (fg_readlink): Perform cast in a
 separate statement to hide it from "make syntax-check".
---
 fuse/guestmount.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/fuse/guestmount.c b/fuse/guestmount.c
index c7220c0..d45c18b 100644
--- a/fuse/guestmount.c
+++ b/fuse/guestmount.c
@@ -360,8 +360,10 @@ fg_readlink (const char *path, char *buf, size_t size)
   memcpy (buf, r, len);
   buf[len] = '\0';

-  if (free_it)
-    free ((char *) r);
+  if (free_it) {
+    char *tmp = (char *) r;
+    free (tmp);
+  }

   return 0;
 }
--
1.6.5.2.351.g0943




More information about the Libguestfs mailing list