]> git.gsnw.org Git - fping.git/commitdiff
Set the variable "prog" before the first call to any routine using error reporting
authorPeter Bray <illumino@github>
Sat, 19 Nov 2016 13:01:59 +0000 (00:01 +1100)
committerPeter Bray <illumino@github>
Sat, 19 Nov 2016 13:01:59 +0000 (00:01 +1100)
Error reporting uses the variable "prog" which is null prior to obtaining a
reference to argv[0]. The call to open_ping_socket() uses this on an error,
such as the executable not being SUID or otherwise privileged invocation.
Solaris 10 printf(3C) of "%s" on a null pointer causes a core dump.

src/fping.c

index c9a4981ee23d54e094bc825102af5004e87c259b..fd424ebc5f138f2f7fe788421f52398be6ed1d72 100644 (file)
@@ -365,6 +365,8 @@ int main( int argc, char **argv )
     int tos = 0; 
     HOST_ENTRY *cursor;
 
+    prog = argv[0];
+
     s = open_ping_socket(ping_data_size);
 
     if((uid = getuid())) {
@@ -373,7 +375,6 @@ int main( int argc, char **argv )
             perror("cannot setuid");
     }
 
-    prog = argv[0];
     ident = getpid() & 0xFFFF;
     verbose_flag = 1;
     backoff_flag = 1;