ping -R option broken?

Rick Stevens ricks at nerd.com
Wed Feb 18 19:27:09 UTC 2009


Kyle McMartin wrote:
> On Wed, Feb 18, 2009 at 01:08:24PM -0600, Michael Cronenworth wrote:
>> Attached. I noticed the "Operation not permitted" message, but ping  
>> works without the -R option.
>>
> 
> You can't strace a SUID binary as a user... the log doesn't contain
> anything useful... sudo strace ping -R intranet plz.

As the root user:

[root at prophead ~]# strace ping -R intranet
execve("/bin/ping", ["ping", "-R", "intranet"], [/* 31 vars */]) = 0
brk(0)                                  = 0x222b000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d86000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d85000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or 
directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=249857, ...}) = 0
mmap(NULL, 249857, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa5d7d47000
close(3)                                = 0
open("/lib64/libidn.so.11", O_RDONLY)   = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360. 
\2176\0\0\0@"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=208848, ...}) = 0
mmap(0x368f200000, 2301640, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x368f200000
mprotect(0x368f231000, 2097152, PROT_NONE) = 0
mmap(0x368f431000, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31000) = 0x368f431000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\346!}6\0\0\0@"..., 
832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1835416, ...}) = 0
mmap(0x367d200000, 3609208, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x367d200000
mprotect(0x367d368000, 2097152, PROT_NONE) = 0
mmap(0x367d568000, 20480, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x168000) = 0x367d568000
mmap(0x367d56d000, 17016, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x367d56d000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d46000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d45000
arch_prctl(ARCH_SET_FS, 0x7fa5d7d456f0) = 0
mprotect(0x367d568000, 16384, PROT_READ) = 0
mprotect(0x367c01f000, 4096, PROT_READ) = 0
munmap(0x7fa5d7d47000, 249857)          = 0
brk(0)                                  = 0x222b000
brk(0x224c000)                          = 0x224c000
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=80625888, ...}) = 0
mmap(NULL, 80625888, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa5d3060000
close(3)                                = 0
socket(PF_INET, SOCK_RAW, IPPROTO_ICMP) = 3
getuid()                                = 0
setuid(0)                               = 0
getpid()                                = 766
open("/etc/resolv.conf", O_RDONLY)      = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=61, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d84000
read(4, "search hci.com\nnameserver 68.94.1"..., 4096) = 61
read(4, ""..., 4096)                    = 0
close(4)                                = 0
munmap(0x7fa5d7d84000, 4096)            = 0
socket(PF_FILE, 0x80801 /* SOCK_??? */, 0) = 4
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = 
-1 ENOENT (No such file or directory)
close(4)                                = 0
socket(PF_FILE, 0x80801 /* SOCK_??? */, 0) = 4
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"...}, 110) = 
-1 ENOENT (No such file or directory)
close(4)                                = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=1696, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d84000
read(4, "#\n# /etc/nsswitch.conf\n#\n# An exa"..., 4096) = 1696
read(4, ""..., 4096)                    = 0
close(4)                                = 0
munmap(0x7fa5d7d84000, 4096)            = 0
open("/etc/ld.so.cache", O_RDONLY)      = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=249857, ...}) = 0
mmap(NULL, 249857, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7fa5d7d47000
close(4)                                = 0
open("/lib64/libnss_files.so.2", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@ 
\0\0\0\0\0\0@"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=62168, ...}) = 0
mmap(NULL, 2147624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 
0) = 0x110000
mprotect(0x11c000, 2093056, PROT_NONE)  = 0
mmap(0x31b000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0xb000) = 0x31b000
close(4)                                = 0
mprotect(0x31b000, 4096, PROT_READ)     = 0
munmap(0x7fa5d7d47000, 249857)          = 0
open("/etc/host.conf", O_RDONLY)        = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=17, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d84000
read(4, "order hosts,bind\n"..., 4096)  = 17
read(4, ""..., 4096)                    = 0
close(4)                                = 0
munmap(0x7fa5d7d84000, 4096)            = 0
open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4
fcntl(4, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
fstat(4, {st_mode=S_IFREG|0644, st_size=1454, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d84000
read(4, "# Do not remove the following lin"..., 4096) = 1454
read(4, ""..., 4096)                    = 0
close(4)                                = 0
munmap(0x7fa5d7d84000, 4096)            = 0
open("/etc/ld.so.cache", O_RDONLY)      = 4
fstat(4, {st_mode=S_IFREG|0644, st_size=249857, ...}) = 0
mmap(NULL, 249857, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7fa5d7d47000
close(4)                                = 0
open("/lib64/libnss_dns.so.2", O_RDONLY) = 4
read(4, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\20\0\0\0\0\0\0@"..., 
832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=27824, ...}) = 0
mmap(NULL, 2117888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 
0) = 0x80a000
mprotect(0x80f000, 2093056, PROT_NONE)  = 0
mmap(0xa0e000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x4000) = 0xa0e000
close(4)                                = 0
open("/lib64/libresolv.so.2", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3008 
\2056\0\0\0@"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=106656, ...}) = 0
mmap(0x3685200000, 2194056, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x3685200000
mprotect(0x3685214000, 2097152, PROT_NONE) = 0
mmap(0x3685414000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x14000) = 0x3685414000
mmap(0x3685416000, 6792, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3685416000
close(4)                                = 0
mprotect(0x3685414000, 4096, PROT_READ) = 0
mprotect(0xa0e000, 4096, PROT_READ)     = 0
munmap(0x7fa5d7d47000, 249857)          = 0
socket(PF_INET, 0x802 /* SOCK_??? */, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(53), 
sin_addr=inet_addr("68.94.156.1")}, 28) = 0
poll([{fd=4, events=POLLOUT}], 1, 0)    = 1 ([{fd=4, revents=POLLOUT}])
sendto(4, "\\\353\1\0\0\1\0\0\0\0\0\0\10intranet\3hci\3com\0\0\1\0"..., 
34, MSG_NOSIGNAL, NULL, 0) = 34
poll([{fd=4, events=POLLIN}], 1, 5000)  = 1 ([{fd=4, revents=POLLIN}])
ioctl(4, FIONREAD, [64])                = 0
recvfrom(4, 
"\\\353\201\200\0\1\0\2\0\0\0\0\10intranet\3hci\3com\0\0\1\0"..., 1024, 
0, {sa_family=AF_INET, sin_port=htons(53), 
sin_addr=inet_addr("68.94.156.1")}, [16]) = 64
close(4)                                = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(1025), 
sin_addr=inet_addr("64.182.91.176")}, 16) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(38159), 
sin_addr=inet_addr("192.168.1.50")}, [16129750951438319632]) = 0
close(4)                                = 0
setsockopt(3, SOL_RAW, ICMP_FILTER, 
~(ICMP_ECHOREPLY|ICMP_DEST_UNREACH|ICMP_SOURCE_QUENCH|ICMP_REDIRECT|ICMP_TIME_EXCEEDED|ICMP_PARAMETERPROB), 
4) = 0
setsockopt(3, SOL_IP, IP_RECVERR, [1], 4) = 0
setsockopt(3, SOL_IP, IP_OPTIONS, 
"\1\7'\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 
40) = -1 ENOMSG (No message of desired type)
dup(2)                                  = 4
fcntl(4, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 3), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d84000
lseek(4, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
open("/usr/share/locale/locale.alias", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=2512, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) 
= 0x7fa5d7d83000
read(5, "# Locale name alias data base.\n# "..., 4096) = 2512
read(5, ""..., 4096)                    = 0
close(5)                                = 0
munmap(0x7fa5d7d83000, 4096)            = 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
(No such file or directory)
write(4, "ping: record route: No message of"..., 47ping: record route: 
No message of desired type
) = 47
close(4)                                = 0
munmap(0x7fa5d7d84000, 4096)            = 0
exit_group(2)                           = ?

> 


-- 
----------------------------------------------------------------------
- Rick Stevens, Systems Engineer                      ricks at nerd.com -
- AIM/Skype: therps2        ICQ: 22643734            Yahoo: origrps2 -
-                                                                    -
-  Time: Nature's way of keeping everything from happening at once.  -
----------------------------------------------------------------------




More information about the fedora-test-list mailing list