[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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



Richard W.M. Jones wrote:
> On Mon, Nov 09, 2009 at 08:21:59PM +0100, Jim Meyering wrote:
>> >From 27e5dc065892802214860686b30abfe208fcca8b Mon Sep 17 00:00:00 2001
>> From: Jim Meyering <meyering 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
>
> ACK.
>
> What's wrong with casting a pointer when freeing it?

Nothing horribly wrong, but more of a code cleanliness issue.

In the vast majority of cases (at least in old code) it's an
anachronistic cast from 10-15 years ago when it was often needed.
In new code, the only cases that really require the cast are
like this one (which is unusual, imho).  In most others,
the conceptual error is in assigning to a "const" pointer
something that will later be freed.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]