[SSSD] [PATCH 3/3] Avoid const warnings when deallocating memory
Simo Sorce
simo at redhat.com
Wed Nov 14 16:58:07 UTC 2012
On Wed, 2012-11-14 at 17:16 +0100, Sumit Bose wrote:
> On Wed, Nov 14, 2012 at 09:01:15AM -0500, Simo Sorce wrote:
> > In some case we allocate and assign data to a const pointer.
> > When we then try to free it we would get a const warning because talloc_free
> > accepts a void, not a const void pointer. Use discard_const to avoid the
> > warning, it is safe in this case.
> > ---
> > src/util/util.h | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/util/util.h b/src/util/util.h
> > index 66bae505df2779dbfc065a09162fd789fef9e835..e85facb92bb4de8d9eeaf97716e1aac252f9b32c 100644
> > --- a/src/util/util.h
> > +++ b/src/util/util.h
> > @@ -228,7 +228,7 @@ errno_t set_debug_file_from_fd(const int fd);
> > #define FLAGS_PID_FILE 0x0004
> >
> > #ifndef talloc_zfree
> > -#define talloc_zfree(ptr) do { talloc_free(ptr); ptr = NULL; } while(0)
> > +#define talloc_zfree(ptr) do { talloc_free(discard_const(ptr)); ptr = NULL; } while(0)
>
> I wonder if it would be cleaner to add a talloc_zfree_const() or similar
> which can be used in places where it is safe to suppress the warning.
> At other place the warning might be useful to discover e.g. some
> copy-and-paste errors.
No, I thought about it but I do not think it is worth the complexity.
If you free a truly const (ie not allocated) piece of memory you'll get
a talloc error/abort which is sufficient I think :)
Simo.
--
Simo Sorce * Red Hat, Inc * New York
More information about the sssd-devel
mailing list