[sudo-users] [BUG] Another system (solaris 10 sparc) requires --disable-pie flag

Christian Jullien eligis at orange.fr
Wed May 15 13:23:09 MDT 2013


Thank you Todd,

In case it helps, here is the result of truss sudo when I don't compile with
--disable-pie:

I can do more tests for you if you like.

execve("src/sudo", 0xFFBFFD14, 0xFFBFFD1C)  argc = 1
sysinfo(SI_MACHINE, "sun4u", 257)               = 6
mmap(0x00000000, 32, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON,
-1, 0) = 0xFF3F0000
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) =
0xFF3B0000
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) =
0xFF360000
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON,
-1, 0) = 0xFF350000
memcntl(0xFF370000, 17900, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
memcntl(0xFF3D0000, 9864, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
getcwd("/export/home/jullien/sudo-1.8.7rc2", 1014) = 0
resolvepath("/export/home/jullien/sudo-1.8.7rc2/src/sudo",
"/export/home/jullien/sudo-1.8.7rc2/src/sudo", 1023) = 43
stat64("/export/home/jullien/sudo-1.8.7rc2/src/sudo", 0xFFBFF7D8) = 0
open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
stat64("/usr/local/lib/libsocket.so.1", 0xFFBFEF38) Err#2 ENOENT
stat64("./libsocket.so.1", 0xFFBFEF38)          Err#2 ENOENT
stat64("/lib/libsocket.so.1", 0xFFBFEF38)       = 0
resolvepath("/lib/libsocket.so.1", "/lib/libsocket.so.1", 1023) = 19
open("/lib/libsocket.so.1", O_RDONLY)           = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF340000
mmap(0x00010000, 122880, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF320000
mmap(0xFF320000, 44878, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT,
3, 0) = 0xFF320000
mmap(0xFF33C000, 4309, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 49152) = 0xFF33C000
munmap(0xFF32C000, 65536)                       = 0
munmap(0xFF340000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFF320000, 14356, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("/usr/local/lib/libnsl.so.1", 0xFFBFEF38) Err#2 ENOENT
stat64("./libnsl.so.1", 0xFFBFEF38)             Err#2 ENOENT
stat64("/lib/libnsl.so.1", 0xFFBFEF38)          = 0
resolvepath("/lib/libnsl.so.1", "/lib/libnsl.so.1", 1023) = 16
open("/lib/libnsl.so.1", O_RDONLY)              = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF340000
mmap(0x00010000, 729088, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF200000
mmap(0xFF200000, 597474, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF200000
mmap(0xFF2A2000, 33885, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 598016) = 0xFF2A2000
mmap(0xFF2AC000, 23368, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFF2AC000
munmap(0xFF292000, 65536)                       = 0
munmap(0xFF340000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFF200000, 90068, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("/usr/local/lib/libintl.so.8", 0xFFBFEF38) = 0
resolvepath("/usr/local/lib/libintl.so.8",
"/usr/local/lib/libintl.so.8.1.2", 1023) = 31
open("/usr/local/lib/libintl.so.8", O_RDONLY)   = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF340000
mmap(0x00010000, 106496, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF300000
mmap(0xFF300000, 33132, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT,
3, 0) = 0xFF300000
mmap(0xFF318000, 1980, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 32768) = 0xFF318000
munmap(0xFF30A000, 57344)                       = 0
munmap(0xFF340000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFF300000, 5420, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("/usr/local/lib/libiconv.so.2", 0xFFBFEF38) = 0
resolvepath("/usr/local/lib/libiconv.so.2",
"/usr/local/lib/libiconv.so.2.5.1", 1023) = 32
open("/usr/local/lib/libiconv.so.2", O_RDONLY)  = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF340000
mmap(0x00010000, 999424, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF100000
mmap(0xFF100000, 925492, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFF100000
mmap(0xFF1F2000, 2868, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 925696) = 0xFF1F2000
munmap(0xFF1E2000, 65536)                       = 0
munmap(0xFF340000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFF100000, 5436, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("/usr/local/lib/libc.so.1", 0xFFBFEF38)  Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
stat64("/lib/libc.so.1", 0xFFBFEF38)            = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY)                = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF340000
mmap(0x00010000, 1368064, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF80000
mmap(0xFEF80000, 1247157, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEF80000
mmap(0xFF0C2000, 35965, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 1253376) = 0xFF0C2000
mmap(0xFF0CC000, 1616, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFF0CC000
munmap(0xFF0B2000, 65536)                       = 0
munmap(0xFF340000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFEF80000, 146148, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("/usr/local/lib/libssp.so.0", 0xFFBFEF38) = 0
resolvepath("/usr/local/lib/libssp.so.0", "/usr/local/lib/libssp.so.0.0.0",
1023) = 30
open("/usr/local/lib/libssp.so.0", O_RDONLY)    = 3
mmap(0x00010000, 7120, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF340000
mmap(0x00010000, 73728, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF2E0000
mmap(0xFF2E0000, 5220, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT,
3, 0) = 0xFF2E0000
mmap(0xFF2F0000, 5836, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 0) = 0xFF2F0000
munmap(0xFF2E2000, 57344)                       = 0
munmap(0xFF340000, 7120)                        = 0
close(3)                                        = 0
mmap(0x00000000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON,
-1, 0) = 0xFF340000
memcntl(0xFF2E0000, 2588, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("/usr/local/lib/libgcc_s.so.1", 0xFFBFEF38) = 0
resolvepath("/usr/local/lib/libgcc_s.so.1", "/usr/local/lib/libgcc_s.so.1",
1023) = 28
open("/usr/local/lib/libgcc_s.so.1", O_RDONLY)  = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF330000
mmap(0x00010000, 131072, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF0D0000
mmap(0xFF0D0000, 58328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT,
3, 0) = 0xFF0D0000
mmap(0xFF0EE000, 3760, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 57344) = 0xFF0EE000
munmap(0xFF0E0000, 57344)                       = 0
munmap(0xFF330000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFF0D0000, 6788, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
stat64("./libnsl.so.1", 0xFFBFEF38)             Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
stat64("./libc.so.1", 0xFFBFEF38)               Err#2 ENOENT
mprotect(0xFF3D0000, 108316, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mprotect(0xFF3D0000, 108316, PROT_READ|PROT_EXEC) = 0
mmap(0x00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFF330000
getcontext(0xFFBFF648)
getrlimit(RLIMIT_STACK, 0xFFBFF628)             = 0
getpid()                                        = 8566 [8565]
setustack(0xFF332A88)
sysconfig(_CONFIG_STACK_PROT)                   = 7
open("/dev/urandom", O_RDONLY)                  = 3
read(3, "B79F04 s", 4)                          = 4
close(3)                                        = 0
sigfillset(0xFF0CB3BC)                          = 0
stat64("/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1", 0xFFBFEAD8) = 0
resolvepath("/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1",
"/platform/sun4u/lib/libc_psr.so.1", 1023) = 33
open("/platform/SUNW,Ultra-5_10/lib/libc_psr.so.1", O_RDONLY) = 3
mmap(0x00010000, 16856, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF310000
munmap(0xFF314000, 472)                         = 0
close(3)                                        = 0
stat64("/usr/lib/locale/common/methods_unicode.so.3", 0xFFBFF1D8) = 0
resolvepath("/usr/lib/locale/common/methods_unicode.so.3",
"/usr/lib/locale/common/methods_unicode.so.3", 1023) = 43
open("/usr/lib/locale/common/methods_unicode.so.3", O_RDONLY) = 3
mmap(0x00010000, 32768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) =
0xFF2D0000
mmap(0x00010000, 131072, PROT_NONE,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF50000
mmap(0xFEF50000, 58305, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT,
3, 0) = 0xFEF50000
mmap(0xFEF6E000, 1436, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 57344) = 0xFEF6E000
munmap(0xFEF60000, 57344)                       = 0
munmap(0xFF2D0000, 32768)                       = 0
close(3)                                        = 0
memcntl(0xFEF50000, 2824, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
sysconfig(_CONFIG_PAGESIZE)                     = 8192
mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) =
0xFF2C0000
mmap(0x00000000, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) =
0xFEF30000
sigaction(SIGCANCEL, 0xFFBFF730, 0x00000000)    = 0
mmap(0x00000000, 1032192, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_NORESERVE|MAP_ANON, -1, 0) = 0xFEE00000
mmap(0x00010000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF10000
lwp_create(0xFFBFF818, LWP_SUSPENDED, 0xFFBFF814) = 2
/1:     schedctl()                                      = 0xFF3F4000
/1:     lwp_continue(2)                                 = 0
/2:     lwp_create()    (returning as new lwp ...)      = 0
/2:     setustack(0xFEF10288)
/2:     schedctl()                                      = 0xFF3F4010
/2:     lwp_sigmask(SIG_SETMASK, 0xFFBFFEFF, 0x0000FFF7) = 0xFFBFFEFF
[0x0000FFFF]
/2:     lwp_exit()
/1:     lwp_wait(2, 0xFFBFFA44)                         = 0
/1:     brk(0xFF3FD4E0)                                 Err#12 ENOMEM
/1:     brk(0xFF3FD4E0)                                 Err#12 ENOMEM
/1:     time()                                          = 1368645597
/1:     open("/var/run/tzsync", O_RDONLY)               = 3
/1:     mmap(0x00000000, 4, PROT_READ, MAP_SHARED, 3, 0) = 0xFEF00000
/1:     close(3)                                        = 0
/1:     brk(0xFF3FD4E0)                                 Err#12 ENOMEM
/1:     getuid()                                        = 100 [100]
/1:     stat64("src/sudo", 0xFFBFFC10)                  = 0
/1:     getuid()                                        = 100 [100]
/1:     getuid()                                        = 100 [100]
/1:     getgid()                                        = 1 [1]
/1:     getgid()                                        = 1 [1]
/1:     brk(0xFF3FD4E0)                                 Err#12 ENOMEM
/1:         Incurred fault #6, FLTBOUNDS  %pc = 0xFF01DB2C
/1:           siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
/1:         Received signal #11, SIGSEGV [default]
/1:           siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000

-----Original Message-----
From: Todd C. Miller [mailto:Todd.Miller at courtesan.com] 
Sent: mercredi 15 mai 2013 16:45
To: Christian Jullien
Cc: sudo-users at sudo.ws
Subject: Re: [sudo-users] [BUG] Another system (solaris 10 sparc) requires
--disable-pie flag

Thanks for the report.  I haven't noticed this problem on Solaris SPARC but
I will try to reproduce it.  Perhaps I can get to the bottom of it.

 - todd



More information about the sudo-users mailing list