[uClibc 0002354]: Fixing uClibc-0.9.29 ldso bug

bugs at busybox.net bugs at busybox.net
Mon Feb 25 20:57:13 PST 2008


The following issue has been SUBMITTED. 
====================================================================== 
http://busybox.net/bugs/view.php?id=2354 
====================================================================== 
Reported By:                Joe Lin
Assigned To:                uClibc
====================================================================== 
Project:                    uClibc
Issue ID:                   2354
Category:                   Architecture Specific
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     assigned
====================================================================== 
Date Submitted:             02-25-2008 20:57 PST
Last Modified:              02-25-2008 20:57 PST
====================================================================== 
Summary:                    Fixing uClibc-0.9.29 ldso bug
Description: 
When a program is a shard executable (PT_DYNAMIC), ld-uClibc fails to
execute, resulting in a Segmentation Fault. I have located and fixed the
bug. Here is the patch.

------------------------------------------
diff -Naurd uClibc-0.9.29/ldso/ldso/ldso.c
uClibc-0.9.29-p1/ldso/ldso/ldso.c
--- uClibc-0.9.29/ldso/ldso/ldso.c      2007-03-31 21:42:48.000000000
+0800
+++ uClibc-0.9.29-p1/ldso/ldso/ldso.c   2008-02-25 14:15:22.000000000
+0800
@@ -286,6 +286,7 @@
                        _dl_debug_early("calling mprotect on the
application program\n");
                        /* Now cover the application program. */
                        if (app_tpnt->dynamic_info[DT_TEXTREL]) {
+                               ElfW(Phdr) *ppnt;       /* Don't affect
outside ppnt */
                                ppnt = (ElfW(Phdr) *)
auxvt[AT_PHDR].a_un.a_val;
                                for (i = 0; i <
auxvt[AT_PHNUM].a_un.a_val; i++, ppnt++) {
                                        if (ppnt->p_type == PT_LOAD &&
!(ppnt->p_flags & PF_W))
------------------------------------------
====================================================================== 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
02-25-08 20:57  Joe Lin        New Issue                                    
02-25-08 20:57  Joe Lin        Status                   new => assigned     
02-25-08 20:57  Joe Lin        Assigned To               => uClibc          
======================================================================



More information about the uClibc-cvs mailing list