Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 9 Nov 2017 20:09:01 -0500
From: Rich Felker <>
Subject: Re: misc minor undefined behaviors in musl

On Thu, Nov 09, 2017 at 04:53:31PM -0500, Rich Felker wrote:
> > b) __pthread_tsd_run_dtors does not have a prototype
> > 
> > • in cleanup_fromsig, __pthread_tsd_run_dtors is called with an argument:
> >
> > It is defined without a prototype here:
> >
> > It is also called without an argument here:
> >
> > and weak_alias'd to dummy_0 here:
> >
> > 
> > • it seems like the above is on purpose, especially the definition
> > of __pthread_tsd_run_dtors without a prototype, which is still valid
> > in C11and does not mean the same thing as expecting void. Still, for
> > the sake of simplicity, would it be possible to uniformize to
> > __pthread_tsd_run_dtors always taking an argument? Can the
> > invocation without an argument in pthread_create.c end up being
> > linked with an implementation of __pthread_tsd_run_dtors that takes
> > an argument and actually uses it?
> This looks like just a failure to update the one in timer_create.c.
> Rather than spending time analzing the issue we should just fix it;
> the argument is not needed.

Indeed, commit a6054e3c94aa0491d7366e4b05ae0d73f661bfe2 introduced the
mismatch. Fixing it. Thanks!


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.