lkml.org 
[lkml]   [2006]   [Dec]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] [DISCUSS] Make the variable NULL after freeing it.
    From
    Date
    On Thu, 2006-12-28 at 09:54 +0100, Jan Engelhardt wrote:
    > On Dec 27 2006 17:10, Pavel Machek wrote:
    >
    > >> Was just wondering if the _var_ in kfree(_var_) could be set to
    > >> NULL after its freed. It may solve the problem of accessing some
    > >> freed memory as the kernel will crash since _var_ was set to NULL.
    > >>
    > >> Does this make sense? If yes, then how about renaming kfree to
    > >> something else and providing a kfree macro that would do the
    > >> following:
    > >>
    > >> #define kfree(x) do { \
    > >> new_kfree(x); \
    > >> x = NULL; \
    > >> } while(0)
    > >>
    > >> There might be other better ways too.

    ---- snip ----
    (x) = NULL; \
    ---- snip ----
    ?

    > >No, that would be very confusing. Otoh having
    > >KFREE() do kfree() and assignment might be acceptable.
    >
    > What about setting x to some poison value from <linux/poison.h>?

    That depends on the decision/definition if (so called) "double free" is
    an error or not (and "free(NULL)" must work in POSIX-compliant
    environments).
    Personally I think it is pointless to disallow "kfree(NULL)" by using
    some poison value and force people to add a "we have to free that
    variable" variable to work around it instead of keeping it NULL (which
    makes the "kfree($variable)" a no-op).
    Former discussions are to be found in the archives ......

    Bernd
    --
    Firmix Software GmbH http://www.firmix.at/
    mobil: +43 664 4416156 fax: +43 1 7890849-55
    Embedded Linux Development and Services

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-12-31 14:43    [W:3.202 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site