Ping segmentation fault

When I invoke ping, I get a segmentation fault.

Thinking I may have a corrupt file, i extracted ping from the original DVD to my home directory, and ran cmp .ping /usr/bin/ping, which revealed no differences.
In addition their sha256 sums.are identical: b522312c65762eef62b868ddf23cee59bc6318b1f05d770770085cdf6db43cba

This is where it gets interesting. When I run the local copy of ping it works perfectly.
So, I renamed /usr/bin/ping to /usr/bin/ping.org and copied ping from my home directory to /usr/bin.

Surprisingly, ping.org now ran properly, but the new copy failed with a segmentation fault!!
I renamed the new copy to ping.new. It worked correctly.

At this point I have /usr/bin/ping.org and usr/bin/ping.new, both working correctly, but if either is renamed to /usr/bin/ping it fails.

To confirm it was the name that was significant, I renamed /usr/bin/ls to /usr/bin/ping. When run it failed with a segmentation fault.
Renamed it back to /usr/bin/ls and checked that it worked as it should.

It seems that, on my system at least, any executable named /usr/bin/ping will generate a segmentation fault.

Can anyone please confirm whether this fault is reproducible on any other system, and also that the sha256 sum matches.

I suspect it may be a file system error, but would like to confirm that it is local and not a bug.

Hi
Works fine here…


sha256sum /usr/bin/ping
b522312c65762eef62b868ddf23cee59bc6318b1f05d770770085cdf6db43cba  /usr/bin/ping

ls -lah /usr/bin/ping
-rwxr-xr-x 1 root root 39K Oct  7  2016 /usr/bin/ping

Was this an upgrade or fresh install?


zypper if iputils
zypper in -f iputils

It may help to include a lot more history of the system too, such as
whether or not something like AppArmor or SELinux is installed, or if
there are unusual libraries on the system (shouldn’t matter since this is
all based on the name) or maybe some really odd firewall technology that
checks executables doing something by their name.

Maybe hook up strace for the two attempts (working vs. broken) and see
what is different there.


sudo /usr/bin/strace -ttt -ff -s 499 -n /usr/bin/ping 8.8.8.8
sudo /usr/bin/strace -ttt -ff -s 499 -n /usr/bin/ping.org 8.8.8.8


Good luck.

If you find this post helpful and are logged into the web interface,
show your appreciation and click on the star below.

If you want to send me a private message, please let me know in the
forum as I do not use the web interface often.

I don’t see this either. But, to rule out filesystem errors, copy the file from the DVD iso to ~/bin, then run it.

What’s the output of the ‘alias’ command?

Jim

Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

I was just thinking along the same lines. Related to that possibility is to check if there is no ping file anywhere else in the elements of the PATH environment variable.

On Mon, 19 Jun 2017 17:56:01 +0000, hcvv wrote:

> hendersj;2826951 Wrote:
>> What’s the output of the ‘alias’ command?
>>
>> Jim –
>> Jim Henderson openSUSE Forums Administrator Forum Use Terms &
>> Conditions at http://tinyurl.com/openSUSE-T-C
> I was just thinking along the same lines. Related to that possibility is
> to check if there is no ping file anywhere else in the elements of the
> PATH environment variable.

Good catch - I hadn’t thought that myself, but ‘which ping’ would be a
useful result to see as well.

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

Thank you all for your help. I’ll have to split my post into two parts because of the length of the code quoted.
I should mention that I always used the full pathname command to avoid issues with the path…

Part 1

zypper if iputils


john@linux-o9hg:~> zypper if iputils
Loading repository data...
Reading installed packages...


Information for package iputils:
--------------------------------
Repository     : Main Repository (OSS)             
Name           : iputils                           
Version        : s20121221-4.6                     
Arch           : x86_64                            
Vendor         : openSUSE                          
Installed Size : 236.4 KiB                         
Installed      : Yes                               
Status         : up-to-date                        
Source package : iputils-s20121221-4.6.src         
Summary        : IPv4 and IPv6 Networking Utilities
Description    :                                   
    This package contains some small network tools for IPv4 and IPv6 like
    rdisc, ping6, traceroute6, tracepath, and tracepath6.

john@linux-o9hg:~> 

zypper in -f iputils


linux-o9hg:~ # zypper in -f iputils
Loading repository data...
Reading installed packages...
Forcing installation of 'iputils-s20121221-4.6.x86_64' from repository 'Main Repository (OSS)'.
Resolving package dependencies...

The following package is going to be reinstalled:
  iputils

1 package to reinstall.
Overall download size: 89.6 KiB. Already cached: 0 B. No additional space will be used or freed after the
operation.
Continue? [y/n/...? shows all options] (y): y
Retrieving package iputils-s20121221-4.6.x86_64                              (1/1),  89.6 KiB (236.4 KiB unpacked)
Retrieving: iputils-s20121221-4.6.x86_64.rpm ...................................................[done (1.1 KiB/s)]
Checking for file conflicts: ...............................................................................[done]
(1/1) Installing: iputils-s20121221-4.6.x86_64 .............................................................[done]
Additional rpm output:
setting /usr/bin/ping to root:root 0755 "= cap_net_raw+ep". (wrong permissions 4755, missing capabilities)
setting /usr/bin/ping6 to root:root 0755 "= cap_net_raw+ep". (wrong permissions 4755, missing capabilities)


linux-o9hg:~ # 

The output of alias is:


john@linux-o9hg:~> alias
alias +='pushd .'
alias -='popd'
alias ..='cd ..'
alias ...='cd ../..'
alias beep='echo -en "\007"'
alias cd..='cd ..'
alias dir='ls -l'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -alF'
alias la='ls -la'
alias ll='ls -l'
alias ls='_ls'
alias ls-l='ls -l'
alias md='mkdir -p'
alias o='less'
alias rd='rmdir'
alias rehash='hash -r'
alias unmount='echo "Error: Try the command: umount" 1>&2; false'
alias you='if test "$EUID" = 0 ; then /sbin/yast2 online_update ; else su - -c "/sbin/yast2 online_update" ; fi'
john@linux-o9hg:~> 

Part 2
I’m going to need a part 3 as well

My first attempt at running strace failed because it didn’t recognise the -n option. After a little reading I ran it as follows.for /usr/bin/ping

john@linux-o9hg:~> sudo /usr/bin/strace -ff -s 499  /usr/bin/ping -c1 8.8.8.8  
root's password:
execve("/usr/bin/ping", "/usr/bin/ping", "-c1", "8.8.8.8"], /* 16 vars */]) = 0
brk(0)                                  = 0x556bfebf7000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0347a76000
access("/etc/ld.so.preload", R_OK)      = 0
open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
mmap(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7f0347a75000
close(3)                                = 0
readlink("/proc/self/exe", "/usr/bin/ping", 4096) = 13
open("/lib/lib64/liblsp.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\22\0\0\0\0\0\0@\0\0\0\0\0\0\0\320B\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\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\0t4\0\0\0\0\0\0t4\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\260=\0\0\0\0\0\0\260= \0\0\0\0\0\260= \0\0\0\0\0\0\4\0\0\0\0\0\0X\5\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\350=\0\0\0\0\0\0\350= \0\0\0\0\0\350= \0\0\0\0\0\340\1\0\0\0\0\0\0\340\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\3440\0\0\0\0\0\0\3440\0\0\0\0\0\0\3440\0\0\0\0\0\0\264\0\0\0\0\0\0\0\264\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0R\345td\4\0\0\0\260=\0\0\0\0\0\0\260= \0\0\0\0\0\260= \0\0\0\0\0P\2\0\0\0\0\0\0P\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0Z\365&\1\327\326^QQ\243\212\33cJ\365*\2\344\16i\0\0\0\0\3\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18896, ...}) = 0
mmap(NULL, 2114312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0347652000
mprotect(0x7f0347656000, 2093056, PROT_NONE) = 0
mmap(0x7f0347855000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f0347855000
close(3)                                = 0
munmap(0x7f0347a75000, 20)              = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=176590, ...}) = 0
mmap(NULL, 176590, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0347a4a000
close(3)                                = 0
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\27\0\0\0\0\0\0@\0\0\0\0\0\0\0PC\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\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\3048\0\0\0\0\0\0\3048\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\330=\0\0\0\0\0\0\330= \0\0\0\0\0\330= \0\0\0\0\0p\4\0\0\0\0\0\0x\4\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\360=\0\0\0\0\0\0\360= \0\0\0\0\0\360= \0\0\0\0\0\340\1\0\0\0\0\0\0\340\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\3101\0\0\0\0\0\0\3101\0\0\0\0\0\0\3101\0\0\0\0\0\0\24\1\0\0\0\0\0\0\24\1\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\330=\0\0\0\0\0\0\330= \0\0\0\0\0\330= \0\0\0\0\0(\2\0\0\0\0\0\0(\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0g\224\260\345\203y/\35\24\370vUs\360\207\2468\37\252\246\0\0\0\0%\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=19024, ...}) = 0
mmap(NULL, 2114128, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f034744d000
mprotect(0x7f0347451000, 2093056, PROT_NONE) = 0
mmap(0x7f0347650000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f0347650000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0347a49000
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\10\2\0\0\0\0\0@\0\0\0\0\0\0\0\240N\35\0\0\0\0\0\0\0\0\0@\0008\0
\0@\0H\0E\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\260\7\27\0\0\0\0\0\260\7\27\0\0\0\0\0\260\7\27\0\0\0\0\0\34\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\1\0\0\0\5\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\224\221\31\0\0\0\0\0\224\221\31\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\210\227\31\0\0\0\0\0\210\2279\0\0\0\0\0\210\2279\0\0\0\0\0`O\0\0\0\0\0\0\230\222\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0`\313\31\0\0\0\0\0`\3139\0\0\0\0\0`\3139\0\0\0\0\0\360\1\0\0\0\0\0\0\360\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0\210\227\31\0\0\0\0\0\210\2279\0\0\0\0\0\210\2279\0\0\0\0\0\20\0\0\0\0\0\0\0\200\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0P\345td\4\0\0\0\314\7\27\0\0\0\0\0\314\7\27\0\0\0\0\0\314\7\27\0\0\0\0\0\264X\0\0\0\0\0\0\264X\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1925280, ...}) = 0
mmap(NULL, 3811872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f03470aa000
mprotect(0x7f0347244000, 2093056, PROT_NONE) = 0
mmap(0x7f0347443000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x199000) = 0x7f0347443000
mmap(0x7f0347449000, 14880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0347449000
close(3)                                = 0
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\r\0\0\0\0\0\0@\0\0\0\0\0\0\0\30A\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\35\0\1\0\0\0\5\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\300\36\0\0\0\0\0\0\300\36\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0`-\0\0\0\0\0\0`- \0\0\0\0\0`- \0\0\0\0\0\20\3\0\0\0\0\0\0\220\3\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\210-\0\0\0\0\0\0\210- \0\0\0\0\0\210- \0\0\0\0\0\20\2\0\0\0\0\0\0\20\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\0\31\0\0\0\0\0\0\0\31\0\0\0\0\0\0\0\31\0\0\0\0\0\0\274\0\0\0\0\0\0\0\274\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0`-\0\0\0\0\0\0`- \0\0\0\0\0`- \0\0\0\0\0\240\2\0\0\0\0\0\0\240\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0d\16\372\350\232\301PPy\377\306\34\326J\267\244\267\20|\4\0\0\0\20\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18712, ...}) = 0
mmap(NULL, 2109680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0346ea6000
mprotect(0x7f0346ea8000, 2097152, PROT_NONE) = 0
mmap(0x7f03470a8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f03470a8000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0347a48000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0347a47000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0347a46000
arch_prctl(ARCH_SET_FS, 0x7f0347a47700) = 0
mprotect(0x7f0347443000, 16384, PROT_READ) = 0
mprotect(0x7f03470a8000, 4096, PROT_READ) = 0
mprotect(0x7f0347650000, 4096, PROT_READ) = 0
mprotect(0x7f0347855000, 4096, PROT_READ) = 0
mprotect(0x556bfe6a0000, 4096, PROT_READ) = 0
mprotect(0x7f0347a77000, 4096, PROT_READ) = 0
munmap(0x7f0347a4a000, 176590)          = 0
brk(0)                                  = 0x556bfebf7000
brk(0x556bfec18000)                     = 0x556bfec18000
open("/proc/self/cmdline", O_RDONLY)    = -1 EACCES (Permission denied)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV (core dumped) +++
john@linux-o9hg:~>

Note the

open("/proc/self/cmdline", O_RDONLY)    = -1 EACCES (Permission denied)

near the end.

Ok, no alias. The other one was

which ping

Part 3

This is strace on ping.copy.


john@linux-o9hg:~> sudo /usr/bin/strace -ff -s 499  /usr/bin/ping.copy -c1 8.8.8.8
root's password:
execve("/usr/bin/ping.copy", "/usr/bin/ping.copy", "-c1", "8.8.8.8"], /* 16 vars */]) = 0
brk(0)                                  = 0x55f0fc072000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f58000
access("/etc/ld.so.preload", R_OK)      = 0
open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=20, ...}) = 0
mmap(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7f5cc8f57000
close(3)                                = 0
readlink("/proc/self/exe", "/usr/bin/ping.copy", 4096) = 18
open("/lib/lib64/liblsp.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\22\0\0\0\0\0\0@\0\0\0\0\0\0\0\320B\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\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\0t4\0\0\0\0\0\0t4\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\260=\0\0\0\0\0\0\260= \0\0\0\0\0\260= \0\0\0\0\0\0\4\0\0\0\0\0\0X\5\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\350=\0\0\0\0\0\0\350= \0\0\0\0\0\350= \0\0\0\0\0\340\1\0\0\0\0\0\0\340\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\3440\0\0\0\0\0\0\3440\0\0\0\0\0\0\3440\0\0\0\0\0\0\264\0\0\0\0\0\0\0\264\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0R\345td\4\0\0\0\260=\0\0\0\0\0\0\260= \0\0\0\0\0\260= \0\0\0\0\0P\2\0\0\0\0\0\0P\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0Z\365&\1\327\326^QQ\243\212\33cJ\365*\2\344\16i\0\0\0\0\3\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18896, ...}) = 0
mmap(NULL, 2114312, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5cc8b34000
mprotect(0x7f5cc8b38000, 2093056, PROT_NONE) = 0
mmap(0x7f5cc8d37000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f5cc8d37000
close(3)                                = 0
munmap(0x7f5cc8f57000, 20)              = 0
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=176590, ...}) = 0
mmap(NULL, 176590, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5cc8f2c000
close(3)                                = 0
open("/lib64/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\27\0\0\0\0\0\0@\0\0\0\0\0\0\0PC\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0\34\0\33\0\1\0\0\0\5\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\3048\0\0\0\0\0\0\3048\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\330=\0\0\0\0\0\0\330= \0\0\0\0\0\330= \0\0\0\0\0p\4\0\0\0\0\0\0x\4\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\360=\0\0\0\0\0\0\360= \0\0\0\0\0\360= \0\0\0\0\0\340\1\0\0\0\0\0\0\340\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0$\0\0\0\0\0\0\0$\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\3101\0\0\0\0\0\0\3101\0\0\0\0\0\0\3101\0\0\0\0\0\0\24\1\0\0\0\0\0\0\24\1\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0\330=\0\0\0\0\0\0\330= \0\0\0\0\0\330= \0\0\0\0\0(\2\0\0\0\0\0\0(\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0g\224\260\345\203y/\35\24\370vUs\360\207\2468\37\252\246\0\0\0\0%\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=19024, ...}) = 0
mmap(NULL, 2114128, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5cc892f000
mprotect(0x7f5cc8933000, 2093056, PROT_NONE) = 0
mmap(0x7f5cc8b32000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f5cc8b32000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f2b000
open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\10\2\0\0\0\0\0@\0\0\0\0\0\0\0\240N\35\0\0\0\0\0\0\0\0\0@\0008\0
\0@\0H\0E\0\6\0\0\0\5\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0000\2\0\0\0\0\0\0000\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\3\0\0\0\4\0\0\0\260\7\27\0\0\0\0\0\260\7\27\0\0\0\0\0\260\7\27\0\0\0\0\0\34\0\0\0\0\0\0\0\34\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\1\0\0\0\5\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\224\221\31\0\0\0\0\0\224\221\31\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0\210\227\31\0\0\0\0\0\210\2279\0\0\0\0\0\210\2279\0\0\0\0\0`O\0\0\0\0\0\0\230\222\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0`\313\31\0\0\0\0\0`\3139\0\0\0\0\0`\3139\0\0\0\0\0\360\1\0\0\0\0\0\0\360\1\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0p\2\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0\7\0\0\0\4\0\0\0\210\227\31\0\0\0\0\0\210\2279\0\0\0\0\0\210\2279\0\0\0\0\0\20\0\0\0\0\0\0\0\200\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0P\345td\4\0\0\0\314\7\27\0\0\0\0\0\314\7\27\0\0\0\0\0\314\7\27\0\0\0\0\0\264X\0\0\0\0\0\0\264X\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1925280, ...}) = 0
mmap(NULL, 3811872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5cc858c000
mprotect(0x7f5cc8726000, 2093056, PROT_NONE) = 0
mmap(0x7f5cc8925000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x199000) = 0x7f5cc8925000
mmap(0x7f5cc892b000, 14880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5cc892b000
close(3)                                = 0
open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\r\0\0\0\0\0\0@\0\0\0\0\0\0\0\30A\0\0\0\0\0\0\0\0\0\0@\0008\0\7\0@\0 \0\35\0\1\0\0\0\5\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\300\36\0\0\0\0\0\0\300\36\0\0\0\0\0\0\0\0 \0\0\0\0\0\1\0\0\0\6\0\0\0`-\0\0\0\0\0\0`- \0\0\0\0\0`- \0\0\0\0\0\20\3\0\0\0\0\0\0\220\3\0\0\0\0\0\0\0\0 \0\0\0\0\0\2\0\0\0\6\0\0\0\210-\0\0\0\0\0\0\210- \0\0\0\0\0\210- \0\0\0\0\0\20\2\0\0\0\0\0\0\20\2\0\0\0\0\0\0\10\0\0\0\0\0\0\0\4\0\0\0\4\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0\310\1\0\0\0\0\0\0D\0\0\0\0\0\0\0D\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0P\345td\4\0\0\0\0\31\0\0\0\0\0\0\0\31\0\0\0\0\0\0\0\31\0\0\0\0\0\0\274\0\0\0\0\0\0\0\274\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0Q\345td\6\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\0\0\0\0\0\0\0\0\0\0\0\0\0\0\20\0\0\0\0\0\0\0R\345td\4\0\0\0`-\0\0\0\0\0\0`- \0\0\0\0\0`- \0\0\0\0\0\240\2\0\0\0\0\0\0\240\2\0\0\0\0\0\0\1\0\0\0\0\0\0\0\4\0\0\0\24\0\0\0\3\0\0\0GNU\0d\16\372\350\232\301PPy\377\306\34\326J\267\244\267\20|\4\0\0\0\20\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=18712, ...}) = 0
mmap(NULL, 2109680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5cc8388000
mprotect(0x7f5cc838a000, 2097152, PROT_NONE) = 0
mmap(0x7f5cc858a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f5cc858a000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f2a000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f29000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f28000
arch_prctl(ARCH_SET_FS, 0x7f5cc8f29700) = 0
mprotect(0x7f5cc8925000, 16384, PROT_READ) = 0
mprotect(0x7f5cc858a000, 4096, PROT_READ) = 0
mprotect(0x7f5cc8b32000, 4096, PROT_READ) = 0
mprotect(0x7f5cc8d37000, 4096, PROT_READ) = 0
mprotect(0x55f0fa970000, 4096, PROT_READ) = 0
mprotect(0x7f5cc8f59000, 4096, PROT_READ) = 0
munmap(0x7f5cc8f2c000, 176590)          = 0
brk(0)                                  = 0x55f0fc072000
brk(0x55f0fc093000)                     = 0x55f0fc093000
open("/proc/self/cmdline", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f57000
read(3, "/usr/bin/ping.copy\0-c1\0008.8.8.8\0", 1024) = 31
read(3, "", 1024)                       = 0
close(3)                                = 0
munmap(0x7f5cc8f57000, 4096)            = 0
uname({sysname="Linux", nodename="linux-o9hg", ...}) = 0
shmget(0xa5723213, 16384, IPC_CREAT|IPC_EXCL|0666) = -1 EEXIST (File exists)
shmget(0xa5723213, 16384, 0)            = 0
shmat(0, 0, 0)                          = 0x7f5cc8f54000
capget({_LINUX_CAPABILITY_VERSION_3, 0}, NULL) = 0
capget({_LINUX_CAPABILITY_VERSION_3, 0}, {CAP_CHOWN|CAP_DAC_OVERRIDE|CAP_DAC_READ_SEARCH|CAP_FOWNER|CAP_FSETID|CAP_KILL|CAP_SETGID|CAP_SETUID|CAP_SETPCAP|CAP_LINUX_IMMUTABLE|CAP_NET_BIND_SERVICE|CAP_NET_BROADCAST|CAP_NET_ADMIN|CAP_NET_RAW|CAP_IPC_LOCK|CAP_IPC_OWNER|CAP_SYS_MODULE|CAP_SYS_RAWIO|CAP_SYS_CHROOT|CAP_SYS_PTRACE|CAP_SYS_PACCT|CAP_SYS_ADMIN|CAP_SYS_BOOT|CAP_SYS_NICE|CAP_SYS_RESOURCE|CAP_SYS_TIME|CAP_SYS_TTY_CONFIG|CAP_MKNOD|CAP_LEASE|CAP_AUDIT_WRITE|CAP_AUDIT_CONTROL|CAP_SETFCAP|CAP_MAC_OVERRIDE|CAP_MAC_ADMIN|CAP_SYSLOG|CAP_WAKE_ALARM|CAP_BLOCK_SUSPEND|CAP_AUDIT_READ, CAP_CHOWN|CAP_DAC_OVERRIDE|CAP_DAC_READ_SEARCH|CAP_FOWNER|CAP_FSETID|CAP_KILL|CAP_SETGID|CAP_SETUID|CAP_SETPCAP|CAP_LINUX_IMMUTABLE|CAP_NET_BIND_SERVICE|CAP_NET_BROADCAST|CAP_NET_ADMIN|CAP_NET_RAW|CAP_IPC_LOCK|CAP_IPC_OWNER|CAP_SYS_MODULE|CAP_SYS_RAWIO|CAP_SYS_CHROOT|CAP_SYS_PTRACE|CAP_SYS_PACCT|CAP_SYS_ADMIN|CAP_SYS_BOOT|CAP_SYS_NICE|CAP_SYS_RESOURCE|CAP_SYS_TIME|CAP_SYS_TTY_CONFIG|CAP_MKNOD|CAP_LEASE|CAP_AUDIT_WRITE|CAP_AUDIT_CONTROL|CAP_SETFCAP|CAP_MAC_OVERRIDE|CAP_MAC_ADMIN|CAP_SYSLOG|CAP_WAKE_ALARM|CAP_BLOCK_SUSPEND|CAP_AUDIT_READ, 0}) = 0
capget({_LINUX_CAPABILITY_VERSION_3, 0}, NULL) = 0
capset({_LINUX_CAPABILITY_VERSION_3, 0}, {0, CAP_NET_ADMIN|CAP_NET_RAW, 0}) = 0
prctl(PR_SET_KEEPCAPS, 1)               = 0
getuid()                                = 0
setuid(0)                               = 0
prctl(PR_SET_KEEPCAPS, 0)               = 0
getuid()                                = 0
geteuid()                               = 0
capget({_LINUX_CAPABILITY_VERSION_3, 0}, NULL) = 0
capget({_LINUX_CAPABILITY_VERSION_3, 0}, {0, CAP_NET_ADMIN|CAP_NET_RAW, 0}) = 0
capset({_LINUX_CAPABILITY_VERSION_3, 0}, {CAP_NET_RAW, CAP_NET_ADMIN|CAP_NET_RAW, 0}) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM], NULL, 8) = 0
rt_sigaction(SIGALRM, {0x55f0fa76af60, ], SA_RESTORER|SA_INTERRUPT, 0x7f5cc85c0950}, NULL, 8) = 0
socket(PF_INET, SOCK_RAW, IPPROTO_ICMP) = 3
capget({_LINUX_CAPABILITY_VERSION_3, 0}, NULL) = 0
capget({_LINUX_CAPABILITY_VERSION_3, 0}, {CAP_NET_RAW, CAP_NET_ADMIN|CAP_NET_RAW, 0}) = 0
capset({_LINUX_CAPABILITY_VERSION_3, 0}, {0, CAP_NET_ADMIN|CAP_NET_RAW, 0}) = 0
rt_sigaction(SIGINT, {0x55f0fa76af60, ], SA_RESTORER|SA_INTERRUPT, 0x7f5cc85c0950}, NULL, 8) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("8.8.8.8")}, 16) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(49740), sin_addr=inet_addr("198.18.56.110")}, [16]) = 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_SOCKET, SO_SNDBUF, [324], 4) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [65536], 4) = 0
getsockopt(3, SOL_SOCKET, SO_RCVBUF, [131072], [4]) = 0
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 4), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5cc8f53000
write(1, "PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
", 45PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
) = 45
setsockopt(3, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_SNDTIMEO, "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(3, SOL_SOCKET, SO_RCVTIMEO, "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
getpid()                                = 18457
rt_sigaction(SIGINT, {0x55f0fa76c620, ], SA_RESTORER|SA_INTERRUPT, 0x7f5cc85c0950}, NULL, 8) = 0
rt_sigaction(SIGALRM, {0x55f0fa76c620, ], SA_RESTORER|SA_INTERRUPT, 0x7f5cc85c0950}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {0x55f0fa76c610, ], SA_RESTORER|SA_INTERRUPT, 0x7f5cc85c0950}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, ], NULL, 8) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=59, ws_col=108, ws_xpixel=0, ws_ypixel=0}) = 0
sendmsg(3, {msg_name(16)={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("8.8.8.8")}, msg_iov(1)={"\10\0\346ZH\31\0\1_\24IY\0\0\0\0aJ\1\0\0\0\0\0\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 !\"#$%&'()*+,-./01234567", 64}], msg_controllen=0, msg_flags=0}, 0) = 64
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={10, 0}}, NULL) = 0
recvmsg(3, {msg_name(16)={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("8.8.8.8")}, msg_iov(1)={"E\10\0T\311\325\0\0<\1\246;\10\10\10\10\306\0228n\0\0\356ZH\31\0\1_\24IY\0\0\0\0aJ\1\0\0\0\0\0\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 !\"#$%&'()*+,-./01234567", 192}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}], msg_flags=0}, 0) = 84
write(1, "64 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=35.0 ms
", 5464 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=35.0 ms
) = 54
write(1, "
", 1
)                       = 1
write(1, "--- 8.8.8.8 ping statistics ---
", 32--- 8.8.8.8 ping statistics ---
) = 32
write(1, "1 packets transmitted, 1 received, 0% packet loss, time 0ms
", 601 packets transmitted, 1 received, 0% packet loss, time 0ms
) = 60
write(1, "rtt min/avg/max/mdev = 35.084/35.084/35.084/0.000 ms
", 53rtt min/avg/max/mdev = 35.084/35.084/35.084/0.000 ms
) = 53
shmdt(0x7f5cc8f54000)                   = 0
exit_group(0)                           = ?
+++ exited with 0 +++
john@linux-o9hg:~>

I have no idea if this tells us anything, but around line 58 it has

open("/proc/self/cmdline", O_RDONLY) = 3

which is different from the similar point shown in Part 2

Hopefully someone can see something of significance in all this.

.

john@linux-o9hg:~> which ping
/usr/bin/ping
john@linux-o9hg:~> 

I always used the full pathname in any case.

I reinstalled Leap, and ping worked normally.
Then I installed my extra apps one by one, checking ping before and after each installation.
The error returned when I had installed Astrill VPN, so I have raised a bug report with them.

Nice problem analyzing.

It looks then if they replace some library routine with one of their own. :frowning:

Hmm.
The Astrill RPM installs /usr/local/Astrill/libsp.so and /usr/local/Astrill/libsp64.so, which exactly match /lib/i386-linux-gnu/liblsp.so and /lib/x86_64-linux-gnu/liblsp.so respectively on my system.
It would be helpful to know if the latter two are present on a system that does not have Astrill installed.

I have a pretty standard Leap 42.2 running here. Only Packman added to the standard repos.

There is no liblsp.so to be found on the system or in the repos. I searched with the “RPM Provides” checkbox on.

Also there is no /lib/i386-linux-gnu/ or /lib/x86_64-linux-gnu/, thus there is also nothing that could be inside there.

HTH

Astrill have just confirmed that the bug is related to these libraries. They have given me a simple fix and I am waiting for more detailed info.
It’s an odd one. I had the same version of Astrill running on OpenSUSE 13.2 with no problem and Astrill don’t see it on Ubuntu LTS.
It may only manifest on Leap 42.2.

I do not know if there are many users of the product here, but posting the solution will certainly be appreciated. Maybe we even can detect why Leap 42.2 is different.