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: RFC: tunables failure indications...


Siddhesh Poyarekar <siddhesh@gotplt.org> writes:
>> No, in the case DJ and I were looking at this was a static vs. ASLR vs.
>> kernel VMA layout issue where we still have kernel issues on less
>> maintstream architectures. We still need to fail safe in those cases
>> and I think we should just shut the process down with appropriate error
>> messages.
>
> OK, I was just wondering if this was a kernel bug.  Either ways,
> shutting down with an error sounds good, preferably in the ld.so way
> (i.e. write to stderr and _exit()) rather than a forced segfault.

How about this?

diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c
index e625ac1a7d..b55d677aee 100644
--- a/elf/dl-tunables.c
+++ b/elf/dl-tunables.c
@@ -45,12 +45,15 @@ tunables_strdup (const char *in)
   while (in[i++] != '\0');
   char *out = __sbrk (i);
 
-  /* FIXME: In reality if the allocation fails, __sbrk will crash attempting to
-     set the thread-local errno since the TCB has not yet been set up.  This
-     needs to be fixed with an __sbrk implementation that does not set
-     errno.  */
+  /* For most of the tunables code, we ignore user errors.  However,
+     this is a system error - and running out of memory at program
+     startup should be reported, so we do.  */
   if (out == (void *)-1)
-    return NULL;
+    {
+#define SBRKMSG "sbrk() failure while processing tunables"
+      write (2, SBRKMSG, sizeof(SBRKMSG) - 1);
+      _exit (1);
+    }
 
   i--;
 


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