This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v3] getrandom system call wrapper [BZ #17252]


On 09/08/2016 03:54 PM, Andreas Schwab wrote:
On Sep 08 2016, Florian Weimer <fweimer@redhat.com> wrote:

On 09/08/2016 03:36 PM, Andreas Schwab wrote:
On Sep 08 2016, Florian Weimer <fweimer@redhat.com> wrote:

On 09/08/2016 03:19 PM, Andreas Schwab wrote:
On Sep 08 2016, Florian Weimer <fweimer@redhat.com> wrote:

On 09/08/2016 03:01 PM, Andreas Schwab wrote:
On Sep 08 2016, Florian Weimer <fweimer@redhat.com> wrote:

I have retained the __getrandom symbol mangling.  The justification for
that is that getrandom is a fairly common name.  Application code might
use it for something else entirely and interpose their definition, so that
libraries cannot rely on it doing the right thing.  I think the mangling
is justified because it is hard to spot that getrandom is broken due to
interposition.  As <sys/random.h> is a new header, the macro will be
exposed to few applications.

It makes it impossible to take the address of the function, though.

It does.  Do you have a better suggestion to achieve the same effect?

If getrandom is ever standardized be POSIX this will have to be reverted
anyway.

So you don't object to this approach?

Not providing a getrandom symbol is a bug.

Is this better?

You need to add the alias it to the stub, too.

Ahh, good catch.

How does this work?  Like this?

diff --git a/stdlib/getrandom.c b/stdlib/getrandom.c
index f0b3181..bb22dd8 100644
--- a/stdlib/getrandom.c
+++ b/stdlib/getrandom.c
@@ -29,3 +29,5 @@ __getrandom (void *buffer, size_t length, unsigned int flags)
 }

 stub_warning (__getrandom)
+
+weak_alias (__getrandom, getrand)

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]