[uClibc 0002354]: Fixing uClibc-0.9.29 ldso bug

bugs at busybox.net bugs at busybox.net
Tue Feb 26 08:12:56 UTC 2008


The following issue has been CLOSED 
====================================================================== 
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:                     closed
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             02-25-2008 20:57 PST
Last Modified:              02-26-2008 00:12 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))
------------------------------------------
====================================================================== 

---------------------------------------------------------------------- 
 carmelo73 - 02-26-08 00:10  
---------------------------------------------------------------------- 
Already fixed in SVN r20438

See change at
http://www.uclibc.org/cgi-bin/viewcvs.cgi/trunk/uClibc/ldso/ldso/ldso.c?rev=20438&r1=18293&r2=20438&diff_format=h


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          
02-26-08 00:10  carmelo73      Status                   assigned => resolved
02-26-08 00:10  carmelo73      Resolution               open => fixed       
02-26-08 00:10  carmelo73      Note Added: 0005324                          
02-26-08 00:12  carmelo73      Status                   resolved => closed  
======================================================================




More information about the uClibc-cvs mailing list