From: Daniel Micay <danielmicay@gmail.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: Kees Cook <keescook@chromium.org>,
kernel-hardening@lists.openwall.com, ard.biesheuvel@linaro.org,
matt@codeblueprint.co.uk
Subject: Re: [kernel-hardening] [PATCH] add the option of fortified string.h functions
Date: Thu, 04 May 2017 15:03:34 -0400 [thread overview]
Message-ID: <1493924614.1596.6.camel@gmail.com> (raw)
In-Reply-To: <20170504180917.GB19929@leverpostej>
> > https://github.com/thestinger/linux-
> > hardened/commit/6efe84cdb88f73e8b8c59b59a8ea46fa4b1bdab1.patch
> > https://github.com/thestinger/linux-hardened/commit/d342da362c5f852c
> > 1666dce461bc82521b6711e4.patch
> >
> > Unfortunately, ksize means alloc_size on kmalloc is not 100% correct
> > since the extra space from size class rounding falls outside of what
> > it
> > will claim to be the size of the allocation. C standard libraries
> > with
> > _FORTIFY_SOURCE seem to ignore this problem for malloc_usable_size.
> > It
> > doesn't have many uses though.
>
> Perhaps I've misunderstood, but does that matter?
>
> If a caller is relying on accessing padding, I'd say that's a bug.
I think it's gross, but it's essentially what ksize provides: exposing
how much usable padding is available. If the size class rounding padding
is being used by slab debugging red zones, etc. ksize doesn't expose it
as part of the size. It's definitely not widely used. I think the main
use case is for dynamic arrays, to take advantage of the space added to
round to the next size class. There are also likely some users of it
that are not tracking sizes themselves but rather relying on ksize, and
then might end up using that extra space.
I think the glibc authors decided to start considering it a bug to make
real use of malloc_usable_size, and the man page discourages it but
doesn't explicitly document that:
NOTES
The value returned by malloc_usable_size() may be greater than the requested size of the
allocation because of alignment and minimum size constraints. Although the excess bytes
can be overwritten by the application without ill effects, this is not good programming
practice: the number of excess bytes in an allocation depends on the underlying implementa‐
tion.
The main use of this function is for debugging and introspection.
It's mostly safe to use alloc_size like glibc... but not entirely if
using ksize to make use of extra padding is permitted, and it seems like
it is. I don't think it's particularly useful even for dynamic arrays,
but unfortunately it exists / is used.
next prev parent reply other threads:[~2017-05-04 19:03 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-04 14:24 [kernel-hardening] [PATCH] add the option of fortified string.h functions Daniel Micay
2017-05-04 14:51 ` [kernel-hardening] " Daniel Micay
2017-05-04 15:48 ` [kernel-hardening] " Mark Rutland
2017-05-04 17:49 ` Daniel Micay
2017-05-04 18:09 ` Mark Rutland
2017-05-04 19:03 ` Daniel Micay [this message]
2017-05-05 10:38 ` Mark Rutland
2017-05-05 10:52 ` Mark Rutland
2017-05-05 13:44 ` Kees Cook
2017-05-05 17:38 ` Daniel Micay
2017-05-08 11:41 ` Mark Rutland
2017-05-08 16:08 ` Daniel Micay
2017-05-09 20:39 ` Kees Cook
2017-05-09 23:02 ` Daniel Micay
2017-05-10 11:12 ` Mark Rutland
2017-05-05 16:42 ` [kernel-hardening] " Kees Cook
2017-05-05 16:42 ` Kees Cook
2017-05-06 2:12 ` [kernel-hardening] " Kees Cook
2017-05-08 17:57 ` [kernel-hardening] " Daniel Axtens
2017-05-08 17:57 ` Daniel Axtens
2017-05-08 20:50 ` Daniel Micay
2017-05-08 21:53 ` Kees Cook
2017-05-10 12:00 ` Michael Ellerman
2017-05-10 12:00 ` Michael Ellerman
[not found] ` <20170508175723.448CCAC043@b01ledav006.gho.pok.ibm.com>
2017-05-09 6:24 ` Andrew Donnellan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1493924614.1596.6.camel@gmail.com \
--to=danielmicay@gmail.com \
--cc=ard.biesheuvel@linaro.org \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=mark.rutland@arm.com \
--cc=matt@codeblueprint.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.