lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1235066556.3166.26.camel@calx>
Date:	Thu, 19 Feb 2009 12:02:36 -0600
From:	Matt Mackall <mpm@...enic.com>
To:	Hugh Dickins <hugh@...itas.com>
Cc:	Pekka Enberg <penberg@...helsinki.fi>,
	KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
	David Vrabel <david.vrabel@....com>,
	Johannes Weiner <hannes@...xchg.org>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Chas Williams <chas@....nrl.navy.mil>,
	Evgeniy Polyakov <johnpol@....mipt.ru>, linux-mm@...ck.org,
	linux-kernel@...r.kernel.org,
	Christoph Lameter <cl@...ux-foundation.org>,
	Nick Piggin <npiggin@...e.de>
Subject: Re: [patch 1/7] slab: introduce kzfree()

On Thu, 2009-02-19 at 16:34 +0000, Hugh Dickins wrote:
> On Thu, 19 Feb 2009, Pekka Enberg wrote:
> > On Wed, 2009-02-18 at 10:50 +0000, David Vrabel wrote:
> > > > > Johannes Weiner wrote:
> > > > > > +void kzfree(const void *p)
> > > > > 
> > > > > Shouldn't this be void * since it writes to the memory?
> > > > 
> > > > No. kfree() writes to the memory as well to update freelists, poisoning
> > > > and such so kzfree() is not at all different from it.
> > 
> > On Thu, 2009-02-19 at 10:22 +0900, KOSAKI Motohiro wrote:
> > > I don't think so. It's debetable thing.
> > > 
> > > poisonig is transparent feature from caller.
> > > but the caller of kzfree() know to fill memory and it should know.
> > 
> > Debatable, sure, but doesn't seem like a big enough reason to make
> > kzfree() differ from kfree().
> 
> There may be more important things for us to worry about,
> but I do strongly agree with KOSAKI-san on this.
> 
> kzfree() already differs from kfree() by a "z": that "z" says please
> zero the buffer pointed to; "const" says it won't modify the buffer
> pointed to.  What sense does kzfree(const void *) make?  Why is
> keeping the declarations the same apart from the "z" desirable?
> 
> By all means refuse to add kzfree(), but please don't add it with const.
> 
> I can see that the "const" in kfree(const void *) is debatable
> [looks to see how userspace free() is defined: without a const],
> I can see that it might be nice to have some "goesaway" attribute
> for such pointers instead; but I don't see how you can argue for
> kzalloc(const void *).

This is what Linus said last time this came up:

http://lkml.org/lkml/2008/1/16/227

-- 
http://selenic.com : development and support for Mercurial and Linux


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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ