From: Rich Felker <dalias@aerifal.cx>
To: musl@lists.openwall.com
Subject: Re: valgrind problems
Date: Sun, 16 Jun 2013 12:04:36 -0400 [thread overview]
Message-ID: <20130616160435.GP29800@brightrain.aerifal.cx> (raw)
In-Reply-To: <1371398332.5692.108.camel@eris.loria.fr>
On Sun, Jun 16, 2013 at 05:58:52PM +0200, Jens Gustedt wrote:
> Am Sonntag, den 16.06.2013, 11:31 -0400 schrieb Rich Felker:
> > > > > Also for calloc I am not sure that when we switch off the false
> > > > > positive (where musl assumes a certain gcc behavior for what in
> > > > > general is UB)
> > > >
> > > > musl is not assuming any gcc behavior.
> > >
> > > unfortunately it does. as an optimization shortcut it reads the newly
> > > allocated bytes and if they are already 0, it doesn't write to
> > > them.
> >
> > This is not gcc behavior.
>
> yes, I think it is gcc+platform behavior. the C standard makes no
> guarantee that this
>
> if (*z) *z=0;
>
> guarantees that *z is observably 0 afterwards. And the problem is not
> that *z could be UB (if size_t had traps) but that there is no
> guarantee that an undetermined value is stable between two reads (the
> first with that "if" and the second from the application that receives
> this).
It's not an indeterminate value. It's simply a value. Because malloc
is not special here. It's just like any other function defined in C
code on a freestanding implementation.
> > It's behavior of it's own implementation of
> > malloc. From the implementation's standpoint, the object returned by
> > malloc does not have indeterminate value; otherwise it would be
> > impossible to link it with its bookkeeping information, contained in
> > the header of the object, and to later free it. In other words, if you
> > required the implementation to treat malloc as a black box, it would
> > be impossible to implement free.
>
> I agree with all of this, if you can guarantee that the memory *is*
> effectively zero'ed after calloc. With the current implementation in
> musl you can only do that with additional knowledge about the
> platform.
No, the only special knowledge musl is using is that it's part of a
hosted implementation written to be used on a freestanding
implementation (gcc -ffreestanding); in particular, the fact that
"malloc" is not the malloc function of a hosted implementation.
Rich
next prev parent reply other threads:[~2013-06-16 16:04 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-15 22:01 [PATCH] bugfix: initialize a state variable in lio_wait Jens Gustedt
2013-06-15 22:16 ` Szabolcs Nagy
2013-06-16 5:40 ` Rich Felker
2013-06-16 7:22 ` Jens Gustedt
2013-06-16 9:31 ` Jens Gustedt
2013-06-16 10:18 ` Justin Cormack
2013-06-16 10:43 ` valgrind problems Jens Gustedt
2013-06-16 11:39 ` Szabolcs Nagy
2013-06-16 14:16 ` Jens Gustedt
2013-06-16 14:36 ` Rich Felker
2013-06-16 14:31 ` Rich Felker
2013-06-16 15:26 ` Jens Gustedt
2013-06-16 15:31 ` Rich Felker
2013-06-16 15:58 ` Jens Gustedt
2013-06-16 16:04 ` Rich Felker [this message]
2013-06-16 17:39 ` Jens Gustedt
2013-06-16 19:16 ` Rich Felker
2013-06-16 19:38 ` Szabolcs Nagy
2013-06-16 19:41 ` Rich Felker
2013-06-16 17:40 ` Szabolcs Nagy
2013-06-16 18:02 ` Jens Gustedt
2013-06-16 19:25 ` Szabolcs Nagy
2013-06-16 19:29 ` Rich Felker
2013-06-16 14:24 ` [PATCH] bugfix: initialize a state variable in lio_wait Rich Felker
2013-06-16 15:48 ` Jens Gustedt
2013-06-16 15:37 ` Szabolcs Nagy
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=20130616160435.GP29800@brightrain.aerifal.cx \
--to=dalias@aerifal.cx \
--cc=musl@lists.openwall.com \
/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.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).