Browse Source

2004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>

	* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c
	  needs to include "log.h" to pick up the declaration.
ajs 15 years ago
parent
commit
6099b3b569

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+2004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* global: Replace strerror with safe_strerror.  And vtysh/vtysh.c
+	  needs to include "log.h" to pick up the declaration.
+
 2004-11-19 Hasso Tepper <hasso at quagga.net>
 
 	* configure.ac: Avoid regeneration of doc/quagga.info for now.

+ 7 - 7
bgpd/bgp_network.c

@@ -65,7 +65,7 @@ bgp_accept (struct thread *thread)
   bgp_sock = sockunion_accept (accept_sock, &su);
   if (bgp_sock < 0)
     {
-      zlog_err ("[Error] BGP socket accept failed (%s)", strerror (errno));
+      zlog_err ("[Error] BGP socket accept failed (%s)", safe_strerror (errno));
       return -1;
     }
 
@@ -318,7 +318,7 @@ bgp_socket (struct bgp *bgp, unsigned short port)
       sock = socket (ainfo->ai_family, ainfo->ai_socktype, ainfo->ai_protocol);
       if (sock < 0)
 	{
-	  zlog_err ("socket: %s", strerror (errno));
+	  zlog_err ("socket: %s", safe_strerror (errno));
 	  continue;
 	}
 
@@ -335,7 +335,7 @@ bgp_socket (struct bgp *bgp, unsigned short port)
 
       if (ret < 0)
 	{
-	  zlog_err ("bind: %s", strerror (en));
+	  zlog_err ("bind: %s", safe_strerror (en));
 	  close(sock);
 	  continue;
 	}
@@ -343,7 +343,7 @@ bgp_socket (struct bgp *bgp, unsigned short port)
       ret = listen (sock, 3);
       if (ret < 0) 
 	{
-	  zlog_err ("listen: %s", strerror (errno));
+	  zlog_err ("listen: %s", safe_strerror (errno));
 	  close (sock);
 	  continue;
 	}
@@ -369,7 +369,7 @@ bgp_socket (struct bgp *bgp, unsigned short port)
   sock = socket (AF_INET, SOCK_STREAM, 0);
   if (sock < 0)
     {
-      zlog_err ("socket: %s", strerror (errno));
+      zlog_err ("socket: %s", safe_strerror (errno));
       return sock;
     }
 
@@ -396,7 +396,7 @@ bgp_socket (struct bgp *bgp, unsigned short port)
 
   if (ret < 0)
     {
-      zlog_err ("bind: %s", strerror (en));
+      zlog_err ("bind: %s", safe_strerror (en));
       close (sock);
       return ret;
     }
@@ -404,7 +404,7 @@ bgp_socket (struct bgp *bgp, unsigned short port)
   ret = listen (sock, 3);
   if (ret < 0) 
     {
-      zlog_err ("listen: %s", strerror (errno));
+      zlog_err ("listen: %s", safe_strerror (errno));
       close (sock);
       return ret;
     }

+ 2 - 2
bgpd/bgp_packet.c

@@ -152,7 +152,7 @@ bgp_connect_check (struct peer *peer)
     {
       if (BGP_DEBUG (events, EVENTS))
 	  plog_info (peer->log, "%s [Event] Connect failed (%s)",
-		     peer->host, strerror (errno));
+		     peer->host, safe_strerror (errno));
       BGP_EVENT_ADD (peer, TCP_connection_open_failed);
     }
 }
@@ -2115,7 +2115,7 @@ bgp_read_packet (struct peer *peer)
 	return -1;
 
       plog_err (peer->log, "%s [Error] bgp_read_packet error: %s",
-		 peer->host, strerror (errno));
+		 peer->host, safe_strerror (errno));
       BGP_EVENT_ADD (peer, TCP_fatal_error);
       return -1;
     }  

+ 13 - 13
isisd/isis_network.c

@@ -130,7 +130,7 @@ isis_multicast_join (int fd, int registerto, int if_num)
   if (setsockopt (fd, SOL_PACKET, PACKET_ADD_MEMBERSHIP, &mreq,
 		  sizeof (struct packet_mreq)))
     {
-      zlog_warn ("isis_multicast_join(): setsockopt(): %s", strerror (errno));
+      zlog_warn ("isis_multicast_join(): setsockopt(): %s", safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -147,7 +147,7 @@ open_packet_socket (struct isis_circuit *circuit)
   if (fd < 0)
     {
       zlog_warn ("open_packet_socket(): socket() failed %s",
-		 strerror (errno));
+		 safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -162,7 +162,7 @@ open_packet_socket (struct isis_circuit *circuit)
   if (bind (fd, (struct sockaddr *) (&s_addr),
 	    sizeof (struct sockaddr_ll)) < 0)
     {
-      zlog_warn ("open_packet_socket(): bind() failed: %s", strerror (errno));
+      zlog_warn ("open_packet_socket(): bind() failed: %s", safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -222,7 +222,7 @@ open_bpf_dev (struct isis_circuit *circuit)
   if (fd < 0)
     {
       zlog_warn ("open_bpf_dev(): failed to create bpf socket: %s",
-		 strerror (errno));
+		 safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -232,7 +232,7 @@ open_bpf_dev (struct isis_circuit *circuit)
   if (ioctl (fd, BIOCSETIF, (caddr_t) & ifr) < 0)
     {
       zlog_warn ("open_bpf_dev(): failed to bind to interface: %s",
-		 strerror (errno));
+		 safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -307,7 +307,7 @@ open_bpf_dev (struct isis_circuit *circuit)
   if (ioctl (fd, BIOCSETF, (caddr_t) & bpf_prog) < 0)
     {
       zlog_warn ("open_bpf_dev(): failed to install filter: %s",
-		 strerror (errno));
+		 safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -329,7 +329,7 @@ isis_sock_init (struct isis_circuit *circuit)
   int retval = ISIS_OK;
 
   if (isisd_privs.change (ZPRIVS_RAISE))
-    zlog_err ("%s: could not raise privs, %s", __func__, strerror (errno));
+    zlog_err ("%s: could not raise privs, %s", __func__, safe_strerror (errno));
 
 #ifdef GNU_LINUX
   retval = open_packet_socket (circuit);
@@ -362,7 +362,7 @@ isis_sock_init (struct isis_circuit *circuit)
 
 end:
   if (isisd_privs.change (ZPRIVS_LOWER))
-    zlog_err ("%s: could not lower privs, %s", __func__, strerror (errno));
+    zlog_err ("%s: could not lower privs, %s", __func__, safe_strerror (errno));
 
   return retval;
 }
@@ -395,7 +395,7 @@ isis_recv_pdu_bcast (struct isis_circuit *circuit, u_char * ssnpa)
   if (bytesread < 0)
     {
       zlog_warn ("isis_recv_packet_bcast(): fd %d, recvfrom (): %s",
-		 circuit->fd, strerror (errno));
+		 circuit->fd, safe_strerror (errno));
       zlog_warn ("circuit is %s", circuit->interface->name);
       zlog_warn ("circuit fd %d", circuit->fd);
       zlog_warn ("bytesread %d", bytesread);
@@ -549,7 +549,7 @@ isis_recv_pdu_bcast (struct isis_circuit *circuit, u_char * ssnpa)
 
   if (ioctl (circuit->fd, FIONREAD, (caddr_t) & bytestoread) < 0)
     {
-      zlog_warn ("ioctl() FIONREAD failed: %s", strerror (errno));
+      zlog_warn ("ioctl() FIONREAD failed: %s", safe_strerror (errno));
     }
 
   if (bytestoread)
@@ -559,7 +559,7 @@ isis_recv_pdu_bcast (struct isis_circuit *circuit, u_char * ssnpa)
   if (bytesread < 0)
     {
       zlog_warn ("isis_recv_pdu_bcast(): read() failed: %s",
-		 strerror (errno));
+		 safe_strerror (errno));
       return ISIS_WARNING;
     }
 
@@ -584,7 +584,7 @@ isis_recv_pdu_bcast (struct isis_circuit *circuit, u_char * ssnpa)
 	  ETHER_ADDR_LEN);
 
   if (ioctl (circuit->fd, BIOCFLUSH, &one) < 0)
-    zlog_warn ("Flushing failed: %s", strerror (errno));
+    zlog_warn ("Flushing failed: %s", safe_strerror (errno));
 
   return ISIS_OK;
 }
@@ -599,7 +599,7 @@ isis_recv_pdu_p2p (struct isis_circuit *circuit, u_char * ssnpa)
 
   if (bytesread < 0)
     {
-      zlog_warn ("isis_recv_pdu_p2p(): read () failed: %s", strerror (errno));
+      zlog_warn ("isis_recv_pdu_p2p(): read () failed: %s", safe_strerror (errno));
       return ISIS_WARNING;
     }
 

+ 1 - 1
isisd/modified/thread.c

@@ -611,7 +611,7 @@ thread_fetch (struct thread_master *m, struct thread *fetch)
 	  if (errno == EINTR)
 	    continue;
 
-	  zlog_warn ("select() error: %s", strerror (errno));
+	  zlog_warn ("select() error: %s", safe_strerror (errno));
 	  return NULL;
 	}
 

+ 3 - 3
isisd/modified/vty.c

@@ -1638,7 +1638,7 @@ vty_accept (struct thread *thread)
   vty_sock = sockunion_accept (accept_sock, &su);
   if (vty_sock < 0)
     {
-      zlog_warn ("can't accept vty socket : %s", strerror (errno));
+      zlog_warn ("can't accept vty socket : %s", safe_strerror (errno));
       return -1;
     }
 
@@ -1695,7 +1695,7 @@ vty_accept (struct thread *thread)
 		    (char *) &on, sizeof (on));
   if (ret < 0)
     zlog (NULL, LOG_INFO, "can't set sockopt to vty_sock : %s", 
-	  strerror (errno));
+	  safe_strerror (errno));
 
   vty = vty_create (vty_sock, &su);
 
@@ -1889,7 +1889,7 @@ vtysh_accept (struct thread *thread)
 
   if (sock < 0)
     {
-      zlog_warn ("can't accept vty socket : %s", strerror (errno));
+      zlog_warn ("can't accept vty socket : %s", safe_strerror (errno));
       return -1;
     }
 

+ 1 - 1
lib/buffer.c

@@ -598,7 +598,7 @@ in one shot. */
     {
       if ((errno != EAGAIN) && (errno != EINTR))
         zlog_warn("buffer_flush_available write error on fd %d: %s",
-		  fd,strerror(errno));
+		  fd,safe_strerror(errno));
       return 1;
     }
 

+ 1 - 1
lib/command.c

@@ -2562,7 +2562,7 @@ DEFUN (config_write_file,
   if (chmod (config_file, CONFIGFILE_MASK) != 0)
     {
       vty_out (vty, "Can't chmod configuration file %s: %s (%d).%s", 
-	config_file, strerror(errno), errno, VTY_NEWLINE);
+	config_file, safe_strerror(errno), errno, VTY_NEWLINE);
       return CMD_WARNING;      
     }
 

+ 1 - 1
lib/memory.c

@@ -44,7 +44,7 @@ static void
 zerror (const char *fname, int type, size_t size)
 {
   zlog_err ("%s : can't allocate memory for `%s' size %d: %s\n", 
-	    fname, lookup (mstr, type), (int) size, strerror(errno));
+	    fname, lookup (mstr, type), (int) size, safe_strerror(errno));
   log_memstats(LOG_WARNING);
   abort();
 }

+ 1 - 1
lib/pid_output.c

@@ -71,7 +71,7 @@ pid_output_lock (const char *path)
       if (fd < 0)
         {
         zlog_err( "Can't creat pid lock file %s (%s), exit", 
-                 path, strerror(errno));
+                 path, safe_strerror(errno));
       umask(oldumask);
       exit (-1);
     }

+ 10 - 10
lib/privs.c

@@ -128,7 +128,7 @@ zprivs_state_caps (void)
       if ( cap_get_flag (zprivs_state.caps, zprivs_state.syscaps_p[i], 
                          CAP_EFFECTIVE, &val) )
         zlog_warn ("zprivs_state_caps: could not cap_get_flag, %s",
-                    strerror (errno) );
+                    safe_strerror (errno) );
       if (val == CAP_SET)
         return ZPRIVS_RAISED;
     }
@@ -215,7 +215,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
           if ( setgroups (1, &zprivs_state.vtygrp) )
             {
               fprintf (stderr, "privs_init: could not setgroups, %s\n",
-                         strerror (errno) );
+                         safe_strerror (errno) );
               exit (1);
             }       
         }
@@ -243,7 +243,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
       if ( setregid (zprivs_state.zgid, zprivs_state.zgid) )
         {
           fprintf (stderr, "zprivs_init: could not setregid, %s\n",
-                    strerror (errno) );
+                    safe_strerror (errno) );
           exit (1);
         }
     }
@@ -258,7 +258,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
   if ( prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0) == -1 )
     {
       fprintf (stderr, "privs_init: could not set PR_SET_KEEPCAPS, %s\n",
-                strerror (errno) );
+                safe_strerror (errno) );
       exit(1);
     }
 
@@ -270,7 +270,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
   if ( !(zprivs_state.caps = cap_init()) )
     {
       fprintf (stderr, "privs_init: failed to cap_init, %s\n", 
-               strerror (errno));
+               safe_strerror (errno));
       exit (1);
     }
 
@@ -280,7 +280,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
       if ( setreuid (zprivs_state.zuid, zprivs_state.zuid) )
         {
           fprintf (stderr, "zprivs_init (cap): could not setreuid, %s\n", 
-                     strerror (errno));
+                     safe_strerror (errno));
           exit (1);
         }
     }
@@ -288,7 +288,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
   if ( cap_clear (zprivs_state.caps) )
     {
       fprintf (stderr, "privs_init: failed to cap_clear, %s\n", 
-               strerror (errno));
+               safe_strerror (errno));
       exit (1);
     }
   
@@ -329,7 +329,7 @@ zprivs_init(struct zebra_privs_t *zprivs)
       if ( setreuid (-1, zprivs_state.zuid) )
         {
           fprintf (stderr, "privs_init (uid): could not setreuid, %s\n", 
-                   strerror (errno));
+                   safe_strerror (errno));
           exit (1);
         }
     }
@@ -351,7 +351,7 @@ zprivs_terminate (void)
   if ( cap_set_proc (zprivs_state.caps) ) 
     {
       zlog_err ("privs_terminate: cap_set_proc failed, %s",
-                strerror (errno) );
+                safe_strerror (errno) );
       exit (1);
     }  
 
@@ -368,7 +368,7 @@ zprivs_terminate (void)
       if ( setreuid (zprivs_state.zuid, zprivs_state.zuid) )
         {
           zlog_err ("privs_terminate: could not setreuid, %s", 
-                     strerror (errno) );
+                     safe_strerror (errno) );
           exit (1);
         }
      }

+ 3 - 3
lib/smux.c

@@ -904,7 +904,7 @@ smux_read (struct thread *t)
 
   if (len < 0)
     {
-      zlog_warn ("Can't read all SMUX packet: %s", strerror (errno));
+      zlog_warn ("Can't read all SMUX packet: %s", safe_strerror (errno));
       close (sock);
       smux_sock = -1;
       smux_event (SMUX_CONNECT, 0);
@@ -1181,7 +1181,7 @@ smux_connect (struct thread *t)
   ret = smux_open (smux_sock);
   if (ret < 0)
     {
-      zlog_warn ("SMUX open message send failed: %s", strerror (errno));
+      zlog_warn ("SMUX open message send failed: %s", safe_strerror (errno));
       close (smux_sock);
       smux_sock = -1;
       if (++fail < SMUX_MAX_FAILURE)
@@ -1193,7 +1193,7 @@ smux_connect (struct thread *t)
   ret = smux_register (smux_sock);
   if (ret < 0)
     {
-      zlog_warn ("SMUX register message send failed: %s", strerror (errno));
+      zlog_warn ("SMUX register message send failed: %s", safe_strerror (errno));
       close (smux_sock);
       smux_sock = -1;
       if (++fail < SMUX_MAX_FAILURE)

+ 2 - 2
lib/sockopt.c

@@ -61,11 +61,11 @@ setsockopt_ipv6_pktinfo (int sock, int val)
 #ifdef IPV6_RECVPKTINFO		/*2292bis-01*/
   ret = setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val, sizeof(val));
   if (ret < 0)
-    zlog_warn ("can't setsockopt IPV6_RECVPKTINFO : %s", strerror (errno));
+    zlog_warn ("can't setsockopt IPV6_RECVPKTINFO : %s", safe_strerror (errno));
 #else	/*RFC2292*/
   ret = setsockopt(sock, IPPROTO_IPV6, IPV6_PKTINFO, &val, sizeof(val));
   if (ret < 0)
-    zlog_warn ("can't setsockopt IPV6_PKTINFO : %s", strerror (errno));
+    zlog_warn ("can't setsockopt IPV6_PKTINFO : %s", safe_strerror (errno));
 #endif /* INIA_IPV6 */
   return ret;
 }

+ 5 - 5
lib/sockunion.c

@@ -236,7 +236,7 @@ sockunion_socket (union sockunion *su)
   sock = socket (su->sa.sa_family, SOCK_STREAM, 0);
   if (sock < 0)
     {
-      zlog (NULL, LOG_WARNING, "Can't make socket : %s", strerror (errno));
+      zlog (NULL, LOG_WARNING, "Can't make socket : %s", safe_strerror (errno));
       return -1;
     }
 
@@ -377,7 +377,7 @@ sockunion_connect (int fd, union sockunion *peersu, unsigned short port,
       if (errno != EINPROGRESS)
 	{
 	  zlog_info ("can't connect to %s fd %d : %s",
-		     sockunion_log (&su), fd, strerror (errno));
+		     sockunion_log (&su), fd, safe_strerror (errno));
 	  return connect_error;
 	}
     }
@@ -444,7 +444,7 @@ sockunion_bind (int sock, union sockunion *su, unsigned short port,
 
   ret = bind (sock, (struct sockaddr *)su, size);
   if (ret < 0)
-    zlog (NULL, LOG_WARNING, "can't bind socket : %s", strerror (errno));
+    zlog (NULL, LOG_WARNING, "can't bind socket : %s", safe_strerror (errno));
 
   return ret;
 }
@@ -576,7 +576,7 @@ sockunion_getsockname (int fd)
   if (ret < 0)
     {
       zlog_warn ("Can't get local address and port by getsockname: %s",
-		 strerror (errno));
+		 safe_strerror (errno));
       return NULL;
     }
 
@@ -630,7 +630,7 @@ sockunion_getpeername (int fd)
   if (ret < 0)
     {
       zlog (NULL, LOG_WARNING, "Can't get remote address and port: %s",
-	    strerror (errno));
+	    safe_strerror (errno));
       return NULL;
     }
 

+ 1 - 1
lib/thread.c

@@ -791,7 +791,7 @@ thread_fetch (struct thread_master *m, struct thread *fetch)
               continue;
             }
 
-          zlog_warn ("select() error: %s", strerror (errno));
+          zlog_warn ("select() error: %s", safe_strerror (errno));
             return NULL;
         }
 

+ 6 - 6
lib/vty.c

@@ -1598,7 +1598,7 @@ vty_accept (struct thread *thread)
   vty_sock = sockunion_accept (accept_sock, &su);
   if (vty_sock < 0)
     {
-      zlog_warn ("can't accept vty socket : %s", strerror (errno));
+      zlog_warn ("can't accept vty socket : %s", safe_strerror (errno));
       return -1;
     }
 
@@ -1655,7 +1655,7 @@ vty_accept (struct thread *thread)
 		    (char *) &on, sizeof (on));
   if (ret < 0)
     zlog (NULL, LOG_INFO, "can't set sockopt to vty_sock : %s", 
-	  strerror (errno));
+	  safe_strerror (errno));
 
   vty = vty_create (vty_sock, &su);
 
@@ -1758,7 +1758,7 @@ vty_serv_sock_family (const char* addr, unsigned short port, int family)
 	naddr=NULL;
 	break;
       case 0:
-        zlog_err("error translating address %s: %s",addr,strerror(errno));
+        zlog_err("error translating address %s: %s",addr,safe_strerror(errno));
 	naddr=NULL;
     }
 
@@ -1857,7 +1857,7 @@ vty_serv_un (const char *path)
       if ( chown (path, -1, ids.gid_vty) )
         {
           zlog_err ("vty_serv_un: could chown socket, %s",
-                     strerror (errno) );
+                     safe_strerror (errno) );
         }
     }
 
@@ -1888,7 +1888,7 @@ vtysh_accept (struct thread *thread)
 
   if (sock < 0)
     {
-      zlog_warn ("can't accept vty socket : %s", strerror (errno));
+      zlog_warn ("can't accept vty socket : %s", safe_strerror (errno));
       return -1;
     }
 
@@ -1897,7 +1897,7 @@ vtysh_accept (struct thread *thread)
       || (fcntl (sock, F_SETFL, flags|O_NONBLOCK) == -1) )
     {
       zlog_warn ("vtysh_accept: could not set vty socket to non-blocking,"
-                 " %s, closing", strerror (errno));
+                 " %s, closing", safe_strerror (errno));
       close (sock);
       return -1;
     }

+ 2 - 2
ospf6d/ospf6_lsa.c

@@ -179,7 +179,7 @@ ospf6_lsa_age_set (struct ospf6_lsa *lsa)
 
   if (gettimeofday (&now, (struct timezone *)NULL) < 0)
     zlog_warn ("LSA: gettimeofday failed, may fail LSA AGEs: %s",
-               strerror (errno));
+               safe_strerror (errno));
 
   lsa->birth.tv_sec = now.tv_sec - ntohs (lsa->header->age);
   lsa->birth.tv_usec = now.tv_usec;
@@ -202,7 +202,7 @@ ospf6_lsa_age_current (struct ospf6_lsa *lsa)
   /* current time */
   if (gettimeofday (&now, (struct timezone *)NULL) < 0)
     zlog_warn ("LSA: gettimeofday failed, may fail LSA AGEs: %s",
-               strerror (errno));
+               safe_strerror (errno));
 
   /* calculate age */
   ulage = now.tv_sec - lsa->birth.tv_sec;

+ 8 - 8
ospf6d/ospf6_network.c

@@ -43,7 +43,7 @@ ospf6_set_reuseaddr ()
   u_int on = 0;
   if (setsockopt (ospf6_sock, SOL_SOCKET, SO_REUSEADDR, &on,
                   sizeof (u_int)) < 0)
-    zlog_warn ("Network: set SO_REUSEADDR failed: %s", strerror (errno));
+    zlog_warn ("Network: set SO_REUSEADDR failed: %s", safe_strerror (errno));
 }
 
 /* setsockopt MulticastLoop to off */
@@ -54,7 +54,7 @@ ospf6_reset_mcastloop ()
   if (setsockopt (ospf6_sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP,
                   &off, sizeof (u_int)) < 0)
     zlog_warn ("Network: reset IPV6_MULTICAST_LOOP failed: %s",
-               strerror (errno));
+               safe_strerror (errno));
 }
 
 void
@@ -70,7 +70,7 @@ ospf6_set_checksum ()
 #ifndef DISABLE_IPV6_CHECKSUM
   if (setsockopt (ospf6_sock, IPPROTO_IPV6, IPV6_CHECKSUM,
                   &offset, sizeof (offset)) < 0)
-    zlog_warn ("Network: set IPV6_CHECKSUM failed: %s", strerror (errno));
+    zlog_warn ("Network: set IPV6_CHECKSUM failed: %s", safe_strerror (errno));
 #else
   zlog_warn ("Network: Don't set IPV6_CHECKSUM");
 #endif /* DISABLE_IPV6_CHECKSUM */
@@ -127,7 +127,7 @@ ospf6_join_allspfrouters (u_int ifindex)
 
   if (retval < 0)
     zlog_err ("Network: Join AllSPFRouters on ifindex %d failed: %s",
-              ifindex, strerror (errno));
+              ifindex, safe_strerror (errno));
 #if 0
   else
     zlog_info ("Network: Join AllSPFRouters on ifindex %d", ifindex);
@@ -147,7 +147,7 @@ ospf6_leave_allspfrouters (u_int ifindex)
   if (setsockopt (ospf6_sock, IPPROTO_IPV6, IPV6_LEAVE_GROUP,
                   &mreq6, sizeof (mreq6)) < 0)
     zlog_warn ("Network: Leave AllSPFRouters on ifindex %d Failed: %s",
-               ifindex, strerror (errno));
+               ifindex, safe_strerror (errno));
 #if 0
   else
     zlog_info ("Network: Leave AllSPFRouters on ifindex %d", ifindex);
@@ -167,7 +167,7 @@ ospf6_join_alldrouters (u_int ifindex)
   if (setsockopt (ospf6_sock, IPPROTO_IPV6, IPV6_JOIN_GROUP,
                   &mreq6, sizeof (mreq6)) < 0)
     zlog_warn ("Network: Join AllDRouters on ifindex %d Failed: %s",
-               ifindex, strerror (errno));
+               ifindex, safe_strerror (errno));
 #if 0
   else
     zlog_info ("Network: Join AllDRouters on ifindex %d", ifindex);
@@ -264,7 +264,7 @@ ospf6_sendmsg (struct in6_addr *src, struct in6_addr *dst,
   retval = sendmsg (ospf6_sock, &smsghdr, 0);
   if (retval != iov_totallen (message))
     zlog_warn ("sendmsg failed: ifindex: %d: %s (%d)",
-               *ifindex, strerror (errno), errno);
+               *ifindex, safe_strerror (errno), errno);
 
   return retval;
 }
@@ -300,7 +300,7 @@ ospf6_recvmsg (struct in6_addr *src, struct in6_addr *dst,
 
   retval = recvmsg (ospf6_sock, &rmsghdr, 0);
   if (retval < 0)
-    zlog_warn ("recvmsg failed: %s", strerror (errno));
+    zlog_warn ("recvmsg failed: %s", safe_strerror (errno));
   else if (retval == iov_totallen (message))
     zlog_warn ("recvmsg read full buffer size: %d", retval);
 

+ 1 - 1
ospf6d/ospf6_zebra.c

@@ -461,7 +461,7 @@ ospf6_zebra_route_update (int type, struct ospf6_route *request)
 
   if (ret < 0)
     zlog_err ("zapi_ipv6_route() %s failed: %s",
-              (type == REM ? "delete" : "add"), strerror (errno));
+              (type == REM ? "delete" : "add"), safe_strerror (errno));
 
   XFREE (MTYPE_OSPF6_OTHER, nexthops);
   XFREE (MTYPE_OSPF6_OTHER, ifindexes);

+ 1 - 1
ospfclient/ospf_apiclient.c

@@ -156,7 +156,7 @@ ospf_apiclient_connect (char *host, int syncport)
   ret = listen (async_server_sock, BACKLOG);
   if (ret < 0)
     {
-      fprintf (stderr, "ospf_apiclient_connect: listen: %s\n", strerror (errno));
+      fprintf (stderr, "ospf_apiclient_connect: listen: %s\n", safe_strerror (errno));
       close (async_server_sock);
       return NULL;
     }

+ 3 - 3
ospfd/ospf_api.c

@@ -359,7 +359,7 @@ msg_read (int fd)
 
   if (rlen < 0)
     {
-      zlog_warn ("msg_read: readn %s", strerror (errno));
+      zlog_warn ("msg_read: readn %s", safe_strerror (errno));
       return NULL;
     }
   else if (rlen == 0)
@@ -389,7 +389,7 @@ msg_read (int fd)
       rlen = readn (fd, buf, bodylen);
       if (rlen < 0)
 	{
-	  zlog_warn ("msg_read: readn %s", strerror (errno));
+	  zlog_warn ("msg_read: readn %s", safe_strerror (errno));
 	  return NULL;
 	}
       else if (rlen == 0)
@@ -431,7 +431,7 @@ msg_write (int fd, struct msg *msg)
   wlen = writen (fd, buf, l);
   if (wlen < 0)
     {
-      zlog_warn ("msg_write: writen %s", strerror (errno));
+      zlog_warn ("msg_write: writen %s", safe_strerror (errno));
       return -1;
     }
   else if (wlen == 0)

+ 6 - 6
ospfd/ospf_apiserver.c

@@ -646,7 +646,7 @@ ospf_apiserver_serv_sock_family (unsigned short port, int family)
   if (rc < 0)
     {
       zlog_warn ("ospf_apiserver_serv_sock_family: listen: %s",
-                 strerror (errno));
+                 safe_strerror (errno));
       close (accept_sock);	/* Close socket */
       return rc;
     }
@@ -680,7 +680,7 @@ ospf_apiserver_accept (struct thread *thread)
   new_sync_sock = sockunion_accept (accept_sock, &su);
   if (new_sync_sock < 0)
     {
-      zlog_warn ("ospf_apiserver_accept: accept: %s", strerror (errno));
+      zlog_warn ("ospf_apiserver_accept: accept: %s", safe_strerror (errno));
       return -1;
     }
 
@@ -693,7 +693,7 @@ ospf_apiserver_accept (struct thread *thread)
   ret = getpeername (new_sync_sock, (struct sockaddr *)&peer_sync, &peerlen);
   if (ret < 0)
     {
-      zlog_warn ("ospf_apiserver_accept: getpeername: %s", strerror (errno));
+      zlog_warn ("ospf_apiserver_accept: getpeername: %s", safe_strerror (errno));
       close (new_sync_sock);
       return -1;
     }
@@ -718,7 +718,7 @@ ospf_apiserver_accept (struct thread *thread)
   new_async_sock = socket (AF_INET, SOCK_STREAM, 0);
   if (new_async_sock < 0)
     {
-      zlog_warn ("ospf_apiserver_accept: socket: %s", strerror (errno));
+      zlog_warn ("ospf_apiserver_accept: socket: %s", safe_strerror (errno));
       close (new_sync_sock);
       return -1;
     }
@@ -728,7 +728,7 @@ ospf_apiserver_accept (struct thread *thread)
 
   if (ret < 0)
     {
-      zlog_warn ("ospf_apiserver_accept: connect: %s", strerror (errno));
+      zlog_warn ("ospf_apiserver_accept: connect: %s", safe_strerror (errno));
       close (new_sync_sock);
       close (new_async_sock);
       return -1;
@@ -740,7 +740,7 @@ ospf_apiserver_accept (struct thread *thread)
   ret = shutdown (new_async_sock, SHUT_RD);
   if (ret < 0)
     {
-      zlog_warn ("ospf_apiserver_accept: shutdown: %s", strerror (errno));
+      zlog_warn ("ospf_apiserver_accept: shutdown: %s", safe_strerror (errno));
       close (new_sync_sock);
       close (new_async_sock);
       return -1;

+ 13 - 13
ospfd/ospf_network.c

@@ -56,7 +56,7 @@ ospf_if_add_allspfrouters (struct ospf *top, struct prefix *p,
                                    ifindex);
   if (ret < 0)
     zlog_warn ("can't setsockopt IP_ADD_MEMBERSHIP (AllSPFRouters): %s",
-               strerror (errno));
+               safe_strerror (errno));
   else
     zlog_info ("interface %s join AllSPFRouters Multicast group.",
 	       inet_ntoa (p->u.prefix4));
@@ -75,7 +75,7 @@ ospf_if_drop_allspfrouters (struct ospf *top, struct prefix *p,
                                    ifindex);
   if (ret < 0)
     zlog_warn("can't setsockopt IP_DROP_MEMBERSHIP (AllSPFRouters): %s",
-	      strerror (errno));
+	      safe_strerror (errno));
   else
     zlog_info ("interface %s leave AllSPFRouters Multicast group.",
 	       inet_ntoa (p->u.prefix4));
@@ -95,7 +95,7 @@ ospf_if_add_alldrouters (struct ospf *top, struct prefix *p, unsigned int
                                    ifindex);
   if (ret < 0)
     zlog_warn ("can't setsockopt IP_ADD_MEMBERSHIP (AllDRouters): %s",
-               strerror (errno));
+               safe_strerror (errno));
   else
     zlog_info ("interface %s join AllDRouters Multicast group.",
 	       inet_ntoa (p->u.prefix4));
@@ -114,7 +114,7 @@ ospf_if_drop_alldrouters (struct ospf *top, struct prefix *p, unsigned int
                                    ifindex);
   if (ret < 0)
     zlog_warn ("can't setsockopt IP_DROP_MEMBERSHIP (AllDRouters): %s",
-	       strerror (errno));
+	       safe_strerror (errno));
   else
     zlog_info ("interface %s leave AllDRouters Multicast group.",
 	       inet_ntoa (p->u.prefix4));
@@ -134,18 +134,18 @@ ospf_if_ipmulticast (struct ospf *top, struct prefix *p, unsigned int ifindex)
   /* Prevent receiving self-origined multicast packets. */
   ret = setsockopt (top->fd, IPPROTO_IP, IP_MULTICAST_LOOP, (void *)&val, len);
   if (ret < 0)
-    zlog_warn ("can't setsockopt IP_MULTICAST_LOOP(0): %s", strerror (errno));
+    zlog_warn ("can't setsockopt IP_MULTICAST_LOOP(0): %s", safe_strerror (errno));
   
   /* Explicitly set multicast ttl to 1 -- endo. */
   val = 1;
   ret = setsockopt (top->fd, IPPROTO_IP, IP_MULTICAST_TTL, (void *)&val, len);
   if (ret < 0)
-    zlog_warn ("can't setsockopt IP_MULTICAST_TTL(1): %s", strerror (errno));
+    zlog_warn ("can't setsockopt IP_MULTICAST_TTL(1): %s", safe_strerror (errno));
 
   ret = setsockopt_multicast_ipv4 (top->fd, IP_MULTICAST_IF,
                                    p->u.prefix4, 0, ifindex);
   if (ret < 0)
-    zlog_warn ("can't setsockopt IP_MULTICAST_IF: %s", strerror (errno));
+    zlog_warn ("can't setsockopt IP_MULTICAST_IF: %s", safe_strerror (errno));
 
   return ret;
 }
@@ -158,15 +158,15 @@ ospf_sock_init (void)
 
   if ( ospfd_privs.change (ZPRIVS_RAISE) )
     zlog_err ("ospf_sock_init: could not raise privs, %s",
-               strerror (errno) );
+               safe_strerror (errno) );
     
   ospf_sock = socket (AF_INET, SOCK_RAW, IPPROTO_OSPFIGP);
   if (ospf_sock < 0)
     {
       if ( ospfd_privs.change (ZPRIVS_LOWER) )
         zlog_err ("ospf_sock_init: could not lower privs, %s",
-                   strerror (errno) );
-      zlog_err ("ospf_read_sock_init: socket: %s", strerror (errno));
+                   safe_strerror (errno) );
+      zlog_err ("ospf_read_sock_init: socket: %s", safe_strerror (errno));
       exit(-1);
     }
     
@@ -177,7 +177,7 @@ ospf_sock_init (void)
     {
       if ( ospfd_privs.change (ZPRIVS_LOWER) )
         zlog_err ("ospf_sock_init: could not lower privs, %s",
-                   strerror (errno) );
+                   safe_strerror (errno) );
       zlog_warn ("Can't set IP_HDRINCL option");
     }
 #elif defined (IPTOS_PREC_INTERNETCONTROL)
@@ -191,7 +191,7 @@ ospf_sock_init (void)
     {
       if ( ospfd_privs.change (ZPRIVS_LOWER) )
         zlog_err ("ospf_sock_init: could not lower privs, %s",
-                   strerror (errno) );
+                   safe_strerror (errno) );
       zlog_warn ("can't set sockopt IP_TOS %d to socket %d", tos, ospf_sock);
       close (ospf_sock);	/* Prevent sd leak. */
       return ret;
@@ -209,7 +209,7 @@ ospf_sock_init (void)
   if (ospfd_privs.change (ZPRIVS_LOWER))
     {
       zlog_err ("ospf_sock_init: could not lower privs, %s",
-               strerror (errno) );
+               safe_strerror (errno) );
     }
  
   return ospf_sock;

+ 3 - 3
ospfd/ospf_opaque.c

@@ -387,7 +387,7 @@ ospf_register_opaque_functab (
 		      sizeof (struct ospf_opaque_functab))) == NULL)
     {
       zlog_warn ("ospf_register_opaque_functab: XMALLOC: %s",
-                 strerror (errno));
+                 safe_strerror (errno));
       goto out;
     }
 
@@ -536,7 +536,7 @@ register_opaque_info_per_type (struct ospf_opaque_functab *functab,
   if ((oipt = XCALLOC (MTYPE_OPAQUE_INFO_PER_TYPE,
 		       sizeof (struct opaque_info_per_type))) == NULL)
     {
-      zlog_warn ("register_opaque_info_per_type: XMALLOC: %s", strerror (errno));
+      zlog_warn ("register_opaque_info_per_type: XMALLOC: %s", safe_strerror (errno));
       goto out;
     }
 
@@ -689,7 +689,7 @@ register_opaque_info_per_id (struct opaque_info_per_type *oipt,
   if ((oipi = XCALLOC (MTYPE_OPAQUE_INFO_PER_ID,
 		       sizeof (struct opaque_info_per_id))) == NULL)
     {
-      zlog_warn ("register_opaque_info_per_id: XMALLOC: %s", strerror (errno));
+      zlog_warn ("register_opaque_info_per_id: XMALLOC: %s", safe_strerror (errno));
       goto out;
     }
   oipi->opaque_id = GET_OPAQUE_ID (ntohl (new->data->id.s_addr));

+ 2 - 2
ospfd/ospf_packet.c

@@ -539,7 +539,7 @@ ospf_write_frags (int fd, struct ospf_packet *op, struct ip *iph,
                    iph->ip_id,
                    iph->ip_off,
                    iph->ip_len,
-                   strerror (errno));
+                   safe_strerror (errno));
       
       if (IS_DEBUG_OSPF_PACKET (type - 1, SEND))
         {
@@ -690,7 +690,7 @@ ospf_write (struct thread *thread)
   
   if (ret < 0)
     zlog_warn ("*** sendmsg in ospf_write to %s failed with %s",
-      inet_ntoa (iph.ip_dst), strerror (errno));
+      inet_ntoa (iph.ip_dst), safe_strerror (errno));
 
   /* Show debug sending packet. */
   if (IS_DEBUG_OSPF_PACKET (type - 1, SEND))

+ 6 - 6
ospfd/ospf_te.c

@@ -563,7 +563,7 @@ ospf_mpls_te_new_if (struct interface *ifp)
   if ((new = XMALLOC (MTYPE_OSPF_MPLS_TE_LINKPARAMS,
                   sizeof (struct mpls_te_link))) == NULL)
     {
-      zlog_warn ("ospf_mpls_te_new_if: XMALLOC: %s", strerror (errno));
+      zlog_warn ("ospf_mpls_te_new_if: XMALLOC: %s", safe_strerror (errno));
       goto out;
     }
   memset (new, 0, sizeof (struct mpls_te_link));
@@ -1647,7 +1647,7 @@ DEFUN (mpls_te_link_maxbw,
   ntohf (&lp->max_bw.value, &f1);
   if (sscanf (argv[0], "%g", &f2) != 1)
     {
-      vty_out (vty, "mpls_te_link_maxbw: fscanf: %s%s", strerror (errno), VTY_NEWLINE);
+      vty_out (vty, "mpls_te_link_maxbw: fscanf: %s%s", safe_strerror (errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 
@@ -1689,7 +1689,7 @@ DEFUN (mpls_te_link_max_rsv_bw,
   ntohf (&lp->max_rsv_bw.value, &f1);
   if (sscanf (argv[0], "%g", &f2) != 1)
     {
-      vty_out (vty, "mpls_te_link_max_rsv_bw: fscanf: %s%s", strerror (errno), VTY_NEWLINE);
+      vty_out (vty, "mpls_te_link_max_rsv_bw: fscanf: %s%s", safe_strerror (errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 
@@ -1733,14 +1733,14 @@ DEFUN (mpls_te_link_unrsv_bw,
   /* We don't have to consider about range check here. */
   if (sscanf (argv[0], "%d", &priority) != 1)
     {
-      vty_out (vty, "mpls_te_link_unrsv_bw: fscanf: %s%s", strerror (errno), VTY_NEWLINE);
+      vty_out (vty, "mpls_te_link_unrsv_bw: fscanf: %s%s", safe_strerror (errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 
   ntohf (&lp->unrsv_bw.value [priority], &f1);
   if (sscanf (argv[1], "%g", &f2) != 1)
     {
-      vty_out (vty, "mpls_te_link_unrsv_bw: fscanf: %s%s", strerror (errno), VTY_NEWLINE);
+      vty_out (vty, "mpls_te_link_unrsv_bw: fscanf: %s%s", safe_strerror (errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 
@@ -1781,7 +1781,7 @@ DEFUN (mpls_te_link_rsc_clsclr,
 
   if (sscanf (argv[0], "0x%lx", &value) != 1)
     {
-      vty_out (vty, "mpls_te_link_rsc_clsclr: fscanf: %s%s", strerror (errno), VTY_NEWLINE);
+      vty_out (vty, "mpls_te_link_rsc_clsclr: fscanf: %s%s", safe_strerror (errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 

+ 2 - 2
ripd/rip_interface.c

@@ -86,7 +86,7 @@ ipv4_multicast_join (int sock,
 
   if (ret < 0) 
     zlog (NULL, LOG_INFO, "can't setsockopt IP_ADD_MEMBERSHIP %s",
-	  strerror (errno));
+	  safe_strerror (errno));
 
   return ret;
 }
@@ -193,7 +193,7 @@ rip_interface_multicast_set (int sock, struct connected *connected)
 	      	 sock,inet_ntoa(from.sin_addr),
 		 (int)ntohs(from.sin_port),
 		 connected->ifp->name,
-		  strerror (errno));
+		  safe_strerror (errno));
     }
 
   if (ripd_privs.change (ZPRIVS_LOWER))

+ 5 - 5
ripd/ripd.c

@@ -1350,7 +1350,7 @@ rip_send_packet (u_char * buf, int size, struct sockaddr_in *to,
       if (send_sock < 0)
         {
           zlog_warn("rip_send_packet could not create socket %s",
-                    strerror(errno));
+                    safe_strerror(errno));
           return -1;
     }
       sockopt_broadcast (send_sock);
@@ -1370,7 +1370,7 @@ rip_send_packet (u_char * buf, int size, struct sockaddr_in *to,
                   ntohs (sin.sin_port));
 
   if (ret < 0)
-    zlog_warn ("can't send packet : %s", strerror (errno));
+    zlog_warn ("can't send packet : %s", safe_strerror (errno));
 
   if (!to)
     close(send_sock);
@@ -1604,7 +1604,7 @@ setsockopt_pktinfo (int sock)
     
   ret = setsockopt(sock, IPPROTO_IP, IP_PKTINFO, &val, sizeof(val));
   if (ret < 0)
-    zlog_warn ("Can't setsockopt IP_PKTINFO : %s", strerror (errno));
+    zlog_warn ("Can't setsockopt IP_PKTINFO : %s", safe_strerror (errno));
   return ret;
 }
 
@@ -1662,7 +1662,7 @@ rip_read_new (struct thread *t)
   ret = rip_recvmsg (sock, buf, RIP_PACKET_MAXSIZ, &from, (int *)&ifindex);
   if (ret < 0)
     {
-      zlog_warn ("Can't read RIP packet: %s", strerror (errno));
+      zlog_warn ("Can't read RIP packet: %s", safe_strerror (errno));
       return ret;
     }
 
@@ -1701,7 +1701,7 @@ rip_read (struct thread *t)
 		  (struct sockaddr *) &from, &fromlen);
   if (len < 0) 
     {
-      zlog_info ("recvfrom failed: %s", strerror (errno));
+      zlog_info ("recvfrom failed: %s", safe_strerror (errno));
       return len;
     }
 

+ 2 - 2
ripngd/ripng_interface.c

@@ -94,7 +94,7 @@ ripng_multicast_join (struct interface *ifp)
       }
 
     if (ret < 0)
-      zlog_warn ("can't setsockopt IPV6_JOIN_GROUP: %s", strerror (errno));
+      zlog_warn ("can't setsockopt IPV6_JOIN_GROUP: %s", safe_strerror (errno));
 
     if (IS_RIPNG_DEBUG_EVENT)
       zlog_info ("RIPng %s join to all-rip-routers multicast group", ifp->name);
@@ -120,7 +120,7 @@ ripng_multicast_leave (struct interface *ifp)
     ret = setsockopt (ripng->sock, IPPROTO_IPV6, IPV6_LEAVE_GROUP,
 		      (char *) &mreq, sizeof (mreq));
     if (ret < 0)
-      zlog_warn ("can't setsockopt IPV6_LEAVE_GROUP: %s\n", strerror (errno));
+      zlog_warn ("can't setsockopt IPV6_LEAVE_GROUP: %s\n", safe_strerror (errno));
 
     if (IS_RIPNG_DEBUG_EVENT)
       zlog_info ("RIPng %s leave from all-rip-routers multicast group",

+ 4 - 4
ripngd/ripngd.c

@@ -151,7 +151,7 @@ ripng_make_socket (void)
   ret = bind (sock, (struct sockaddr *) &ripaddr, sizeof (ripaddr));
   if (ret < 0)
   {
-    zlog (NULL, LOG_ERR, "Can't bind ripng socket: %s.", strerror (errno));
+    zlog (NULL, LOG_ERR, "Can't bind ripng socket: %s.", safe_strerror (errno));
     if (ripngd_privs.change (ZPRIVS_LOWER))
       zlog_err ("ripng_make_socket: could not lower privs");
     return ret;
@@ -224,9 +224,9 @@ ripng_send_packet (caddr_t buf, int bufsize, struct sockaddr_in6 *to,
   if (ret < 0) {
     if (to)
       zlog_err ("RIPng send fail on %s to %s: %s", ifp->name, 
-                inet6_ntop (&to->sin6_addr), strerror (errno));
+                inet6_ntop (&to->sin6_addr), safe_strerror (errno));
     else
-      zlog_err ("RIPng send fail on %s: %s", ifp->name, strerror (errno));
+      zlog_err ("RIPng send fail on %s: %s", ifp->name, safe_strerror (errno));
   }
 
   return ret;
@@ -1360,7 +1360,7 @@ ripng_read (struct thread *thread)
 			   &hoplimit);
   if (len < 0) 
     {
-      zlog_warn ("RIPng recvfrom failed: %s.", strerror (errno));
+      zlog_warn ("RIPng recvfrom failed: %s.", safe_strerror (errno));
       return len;
     }
 

+ 7 - 6
vtysh/vtysh.c

@@ -33,6 +33,7 @@
 #include "command.h"
 #include "memory.h"
 #include "vtysh/vtysh.h"
+#include "log.h"
 
 /* Struct VTY. */
 struct vty *vty;
@@ -1562,7 +1563,7 @@ int write_config_integrated(void)
   if (chmod (integrate_default, CONFIGFILE_MASK) != 0)
     {
       fprintf (stdout,"%% Can't chmod configuration file %s: %s (%d)\n", 
-	integrate_default, strerror(errno), errno);
+	integrate_default, safe_strerror(errno), errno);
       return CMD_WARNING;
     }
 
@@ -1715,7 +1716,7 @@ execute_command (const char *command, int argc, const char *arg1,
   if (pid < 0)
     {
       /* Failure of fork(). */
-      fprintf (stderr, "Can't fork: %s\n", strerror (errno));
+      fprintf (stderr, "Can't fork: %s\n", safe_strerror (errno));
       exit (1);
     }
   else if (pid == 0)
@@ -1735,7 +1736,7 @@ execute_command (const char *command, int argc, const char *arg1,
 	}
 
       /* When execlp suceed, this part is not executed. */
-      fprintf (stderr, "Can't execute %s: %s\n", command, strerror (errno));
+      fprintf (stderr, "Can't execute %s: %s\n", command, safe_strerror (errno));
       exit (1);
     }
   else
@@ -1893,7 +1894,7 @@ vtysh_connect (struct vtysh_client *vclient, const char *path)
   if (ret < 0 && errno != ENOENT)
     {
       fprintf  (stderr, "vtysh_connect(%s): stat = %s\n", 
-		path, strerror(errno)); 
+		path, safe_strerror(errno)); 
       exit(1);
     }
   
@@ -1913,7 +1914,7 @@ vtysh_connect (struct vtysh_client *vclient, const char *path)
     {
 #ifdef DEBUG
       fprintf(stderr, "vtysh_connect(%s): socket = %s\n", path,
-	      strerror(errno));
+	      safe_strerror(errno));
 #endif /* DEBUG */
       return -1;
     }
@@ -1932,7 +1933,7 @@ vtysh_connect (struct vtysh_client *vclient, const char *path)
     {
 #ifdef DEBUG
       fprintf(stderr, "vtysh_connect(%s): connect = %s\n", path,
-	      strerror(errno));
+	      safe_strerror(errno));
 #endif /* DEBUG */
       close (sock);
       return -1;

+ 7 - 7
zebra/if_ioctl.c

@@ -50,7 +50,7 @@ interface_list_ioctl ()
   sock = socket (AF_INET, SOCK_DGRAM, 0);
   if (sock < 0) 
     {
-      zlog_warn ("Can't make AF_INET socket stream: %s", strerror (errno));
+      zlog_warn ("Can't make AF_INET socket stream: %s", safe_strerror (errno));
       return -1;
     }
 
@@ -79,7 +79,7 @@ interface_list_ioctl ()
 
       if (ret < 0) 
 	{
-	  zlog_warn ("SIOCGIFCONF: %s", strerror(errno));
+	  zlog_warn ("SIOCGIFCONF: %s", safe_strerror(errno));
 	  goto end;
 	}
       /* Repeatedly get info til buffer fails to grow. */
@@ -218,7 +218,7 @@ if_getaddrs ()
   ret = getifaddrs (&ifap); 
   if (ret != 0)
     {
-      zlog_err ("getifaddrs(): %s", strerror (errno));
+      zlog_err ("getifaddrs(): %s", safe_strerror (errno));
       return -1;
     }
 
@@ -334,7 +334,7 @@ if_get_addr (struct interface *ifp)
     {
       if (errno != EADDRNOTAVAIL)
 	{
-	  zlog_warn ("SIOCGIFADDR fail: %s", strerror (errno));
+	  zlog_warn ("SIOCGIFADDR fail: %s", safe_strerror (errno));
 	  return ret;
 	}
       return 0;
@@ -347,7 +347,7 @@ if_get_addr (struct interface *ifp)
     {
       if (errno != EADDRNOTAVAIL) 
 	{
-	  zlog_warn ("SIOCGIFNETMASK fail: %s", strerror (errno));
+	  zlog_warn ("SIOCGIFNETMASK fail: %s", safe_strerror (errno));
 	  return ret;
 	}
       return 0;
@@ -369,7 +369,7 @@ if_get_addr (struct interface *ifp)
 	{
 	  if (errno != EADDRNOTAVAIL) 
 	    {
-	      zlog_warn ("SIOCGIFDSTADDR fail: %s", strerror (errno));
+	      zlog_warn ("SIOCGIFDSTADDR fail: %s", safe_strerror (errno));
 	      return ret;
 	    }
 	  return 0;
@@ -384,7 +384,7 @@ if_get_addr (struct interface *ifp)
 	{
 	  if (errno != EADDRNOTAVAIL) 
 	    {
-	      zlog_warn ("SIOCGIFBRDADDR fail: %s", strerror (errno));
+	      zlog_warn ("SIOCGIFBRDADDR fail: %s", safe_strerror (errno));
 	      return ret;
 	    }
 	  return 0;

+ 7 - 7
zebra/if_ioctl_solaris.c

@@ -60,7 +60,7 @@ interface_list_ioctl (int af)
   if (sock < 0)
     {
       zlog_warn ("Can't make %s socket stream: %s",
-                 (af == AF_INET ? "AF_INET" : "AF_INET6"), strerror (errno));
+                 (af == AF_INET ? "AF_INET" : "AF_INET6"), safe_strerror (errno));
                  
       if (zserv_privs.change(ZPRIVS_LOWER))
         zlog (NULL, LOG_ERR, "Can't lower privileges");
@@ -79,7 +79,7 @@ calculate_lifc_len:     /* must hold privileges to enter here */
   if (ret < 0)
     {
       zlog_warn ("interface_list_ioctl: SIOCGLIFNUM failed %s",
-                 strerror (errno));
+                 safe_strerror (errno));
       close (sock);
       return -1;
     }
@@ -120,7 +120,7 @@ calculate_lifc_len:     /* must hold privileges to enter here */
       if (errno == EINVAL)
         goto calculate_lifc_len; /* deliberately hold privileges */
 
-      zlog_warn ("SIOCGLIFCONF: %s", strerror (errno));
+      zlog_warn ("SIOCGLIFCONF: %s", safe_strerror (errno));
 
       if (zserv_privs.change(ZPRIVS_LOWER))
         zlog (NULL, LOG_ERR, "Can't lower privileges");
@@ -232,7 +232,7 @@ if_get_addr (struct interface *ifp, struct sockaddr *addr)
       if (ret < 0)
         {
           zlog_warn ("SIOCGLIFDSTADDR (%s) fail: %s",
-                     ifp->name, strerror (errno));
+                     ifp->name, safe_strerror (errno));
           return ret;
         }
       memcpy (&dest, &lifreq.lifr_dstaddr, ADDRLEN (addr));
@@ -251,7 +251,7 @@ if_get_addr (struct interface *ifp, struct sockaddr *addr)
           if (errno != EADDRNOTAVAIL)
             {
               zlog_warn ("SIOCGLIFNETMASK (%s) fail: %s", ifp->name,
-                         strerror (errno));
+                         safe_strerror (errno));
               return ret;
             }
           return 0;
@@ -267,7 +267,7 @@ if_get_addr (struct interface *ifp, struct sockaddr *addr)
               if (errno != EADDRNOTAVAIL)
                 {
                   zlog_warn ("SIOCGLIFBRDADDR (%s) fail: %s",
-                             ifp->name, strerror (errno));
+                             ifp->name, safe_strerror (errno));
                   return ret;
                 }
               return 0;
@@ -289,7 +289,7 @@ if_get_addr (struct interface *ifp, struct sockaddr *addr)
           if (ret < 0)
             {
               zlog_warn ("SIOCGLIFSUBNET (%s) fail: %s",
-                         ifp->name, strerror (errno));
+                         ifp->name, safe_strerror (errno));
             }
           else
             {

+ 3 - 3
zebra/if_proc.c

@@ -138,7 +138,7 @@ ifstat_update_proc ()
   if (fp == NULL)
     {
       zlog_warn ("Can't open proc file %s: %s",
-		 _PATH_PROC_NET_DEV, strerror (errno));
+		 _PATH_PROC_NET_DEV, safe_strerror (errno));
       return -1;
     }
 
@@ -179,7 +179,7 @@ interface_list_proc ()
   if (fp == NULL)
     {
       zlog_warn ("Can't open proc file %s: %s",
-		 _PATH_PROC_NET_DEV, strerror (errno));
+		 _PATH_PROC_NET_DEV, safe_strerror (errno));
       return -1;
     }
 
@@ -222,7 +222,7 @@ ifaddr_proc_ipv6 ()
   if (fp == NULL)
     {
       zlog_warn ("Can't open proc file %s: %s",
-		 _PATH_PROC_NET_IF_INET6, strerror (errno));
+		 _PATH_PROC_NET_IF_INET6, safe_strerror (errno));
       return -1;
     }
   

+ 4 - 4
zebra/if_sysctl.c

@@ -52,7 +52,7 @@ ifstat_update_sysctl ()
   /* Query buffer size. */
   if (sysctl (mib, MIBSIZ, NULL, &bufsiz, NULL, 0) < 0) 
     {
-      zlog_warn ("sysctl() error by %s", strerror (errno));
+      zlog_warn ("sysctl() error by %s", safe_strerror (errno));
       return -1;
     }
 
@@ -62,7 +62,7 @@ ifstat_update_sysctl ()
   /* Fetch interface informations into allocated buffer. */
   if (sysctl (mib, MIBSIZ, buf, &bufsiz, NULL, 0) < 0) 
     {
-      zlog (NULL, LOG_WARNING, "sysctl error by %s", strerror (errno));
+      zlog (NULL, LOG_WARNING, "sysctl error by %s", safe_strerror (errno));
       return -1;
     }
 
@@ -108,7 +108,7 @@ interface_list ()
   /* Query buffer size. */
   if (sysctl (mib, MIBSIZ, NULL, &bufsiz, NULL, 0) < 0) 
     {
-      zlog (NULL, LOG_WARNING, "sysctl() error by %s", strerror (errno));
+      zlog (NULL, LOG_WARNING, "sysctl() error by %s", safe_strerror (errno));
       return;
     }
 
@@ -118,7 +118,7 @@ interface_list ()
   /* Fetch interface informations into allocated buffer. */
   if (sysctl (mib, MIBSIZ, buf, &bufsiz, NULL, 0) < 0) 
     {
-      zlog (NULL, LOG_WARNING, "sysctl error by %s", strerror (errno));
+      zlog (NULL, LOG_WARNING, "sysctl error by %s", safe_strerror (errno));
       return;
     }
 

+ 6 - 6
zebra/interface.c

@@ -234,7 +234,7 @@ if_addr_wakeup (struct interface *ifp)
 	      if (ret < 0)
 		{
 		  zlog_warn ("Can't set interface's address: %s", 
-			     strerror(errno));
+			     safe_strerror(errno));
 		  continue;
 		}
 
@@ -261,7 +261,7 @@ if_addr_wakeup (struct interface *ifp)
 	      if (ret < 0)
 		{
 		  zlog_warn ("Can't set interface's address: %s", 
-			     strerror(errno));
+			     safe_strerror(errno));
 		  continue;
 		}
 	      SET_FLAG (ifc->conf, ZEBRA_IFC_REAL);
@@ -1163,7 +1163,7 @@ ip_address_install (struct vty *vty, struct interface *ifp,
       if (ret < 0)
 	{
 	  vty_out (vty, "%% Can't set interface IP address: %s.%s", 
-		   strerror(errno), VTY_NEWLINE);
+		   safe_strerror(errno), VTY_NEWLINE);
 	  return CMD_WARNING;
 	}
 
@@ -1227,7 +1227,7 @@ ip_address_uninstall (struct vty *vty, struct interface *ifp,
   if (ret < 0)
     {
       vty_out (vty, "%% Can't unset interface IP address: %s.%s", 
-	       strerror(errno), VTY_NEWLINE);
+	       safe_strerror(errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 
@@ -1355,7 +1355,7 @@ ipv6_address_install (struct vty *vty, struct interface *ifp,
       if (ret < 0)
 	{
 	  vty_out (vty, "%% Can't set interface IP address: %s.%s", 
-		   strerror(errno), VTY_NEWLINE);
+		   safe_strerror(errno), VTY_NEWLINE);
 	  return CMD_WARNING;
 	}
 
@@ -1416,7 +1416,7 @@ ipv6_address_uninstall (struct vty *vty, struct interface *ifp,
   if (ret < 0)
     {
       vty_out (vty, "%% Can't unset interface IP address: %s.%s", 
-	       strerror(errno), VTY_NEWLINE);
+	       safe_strerror(errno), VTY_NEWLINE);
       return CMD_WARNING;
     }
 

+ 1 - 1
zebra/ioctl_solaris.c

@@ -331,7 +331,7 @@ if_set_flags (struct interface *ifp, unsigned long flags)
 
   if (ret < 0)
     zlog_info ("can't set interface flags on %s: %s", ifp->name,
-               strerror (errno));
+               safe_strerror (errno));
   else
     ret = 0;
     

+ 12 - 12
zebra/ipforward_proc.c

@@ -77,13 +77,13 @@ ipforward_on ()
   FILE *fp;
   
   if ( zserv_privs.change(ZPRIVS_RAISE) )
-  	zlog_err ("Can't raise privileges, %s", strerror (errno) );
+  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno) );
 
   fp = fopen (proc_ipv4_forwarding, "w");
 
   if (fp == NULL) {
     if ( zserv_privs.change(ZPRIVS_LOWER) )
-      zlog_err ("Can't lower privileges, %s", strerror (errno));
+      zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
     return -1;
   }
 
@@ -92,7 +92,7 @@ ipforward_on ()
   fclose (fp);
 
   if ( zserv_privs.change(ZPRIVS_LOWER) )
-    zlog_err ("Can't lower privileges, %s", strerror (errno));
+    zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
 
   return ipforward ();
 }
@@ -103,13 +103,13 @@ ipforward_off ()
   FILE *fp;
 
   if ( zserv_privs.change(ZPRIVS_RAISE) )
-  	zlog_err ("Can't raise privileges, %s", strerror (errno));
+  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno));
 
   fp = fopen (proc_ipv4_forwarding, "w");
 
   if (fp == NULL) {
     if ( zserv_privs.change(ZPRIVS_LOWER) )
-      zlog_err ("Can't lower privileges, %s", strerror (errno));
+      zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
     return -1;
   }
 
@@ -118,7 +118,7 @@ ipforward_off ()
   fclose (fp);
 
   if ( zserv_privs.change(ZPRIVS_LOWER) )
-    zlog_err ("Can't lower privileges, %s", strerror (errno));
+    zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
 
   return ipforward ();
 }
@@ -150,13 +150,13 @@ ipforward_ipv6_on ()
   FILE *fp;
 
   if ( zserv_privs.change(ZPRIVS_RAISE) )
-  	zlog_err ("Can't raise privileges, %s", strerror (errno));
+  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno));
 
   fp = fopen (proc_ipv6_forwarding, "w");
 
   if (fp == NULL) {
     if ( zserv_privs.change(ZPRIVS_LOWER) )
-      zlog_err ("Can't lower privileges, %s", strerror (errno));
+      zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
     return -1;
   }
 
@@ -165,7 +165,7 @@ ipforward_ipv6_on ()
   fclose (fp);
 
   if ( zserv_privs.change(ZPRIVS_LOWER) )
-    zlog_err ("Can't lower privileges, %s", strerror (errno));
+    zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
 
   return ipforward_ipv6 ();
 }
@@ -176,13 +176,13 @@ ipforward_ipv6_off ()
   FILE *fp;
 
   if ( zserv_privs.change(ZPRIVS_RAISE) )
-  	zlog_err ("Can't raise privileges, %s", strerror (errno));
+  	zlog_err ("Can't raise privileges, %s", safe_strerror (errno));
 
   fp = fopen (proc_ipv6_forwarding, "w");
 
   if (fp == NULL) {
     if ( zserv_privs.change(ZPRIVS_LOWER) )
-      zlog_err ("Can't lower privileges, %s", strerror (errno));
+      zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
     return -1;
   }
 
@@ -191,7 +191,7 @@ ipforward_ipv6_off ()
   fclose (fp);
 
   if ( zserv_privs.change(ZPRIVS_LOWER) )
-    zlog_err ("Can't lower privileges, %s", strerror (errno));
+    zlog_err ("Can't lower privileges, %s", safe_strerror (errno));
 
   return ipforward_ipv6 ();
 }

+ 3 - 3
zebra/ipforward_solaris.c

@@ -80,7 +80,7 @@ solaris_nd(const int cmd, const char* parameter, const int value)
        zlog_err ("solaris_nd: Can't raise privileges");
   if ((fd = open (device, O_RDWR)) < 0) 
     {
-      zlog_warn("failed to open device %s - %s", device, strerror(errno));
+      zlog_warn("failed to open device %s - %s", device, safe_strerror(errno));
       if ( zserv_privs.change (ZPRIVS_LOWER) )
         zlog_err ("solaris_nd: Can't lower privileges");
       return -1;
@@ -90,7 +90,7 @@ solaris_nd(const int cmd, const char* parameter, const int value)
       if ( zserv_privs.change (ZPRIVS_LOWER) )
         zlog_err ("solaris_nd: Can't lower privileges");
       close (fd);
-      zlog_warn("ioctl I_STR failed on device %s - %s", device,strerror(errno));
+      zlog_warn("ioctl I_STR failed on device %s - %s", device,safe_strerror(errno));
       return -1;
     }
   close(fd);
@@ -104,7 +104,7 @@ solaris_nd(const int cmd, const char* parameter, const int value)
       if (errno) 
         {
           zlog_warn("failed to convert returned value to integer - %s",
-                    strerror(errno));
+                    safe_strerror(errno));
           retval = -1;
         }
     } 

+ 1 - 1
zebra/irdp_interface.c

@@ -116,7 +116,7 @@ int if_group (struct interface *ifp,
     zlog_warn ("IRDP: %s can't setsockopt %s: %s",
 	       add_leave == IP_ADD_MEMBERSHIP? "join group":"leave group", 
                inet_2a(group, b1),
-               strerror (errno));
+               safe_strerror (errno));
 
   return ret;
 }

+ 5 - 5
zebra/irdp_main.c

@@ -104,16 +104,16 @@ irdp_sock_init (void)
 
   if ( zserv_privs.change (ZPRIVS_RAISE) )
        zlog_err ("irdp_sock_init: could not raise privs, %s",
-                  strerror (errno) );
+                  safe_strerror (errno) );
 
   irdp_sock = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP);
 
   if ( zserv_privs.change (ZPRIVS_LOWER) )
        zlog_err ("irdp_sock_init: could not lower privs, %s",
-             strerror (errno) );
+             safe_strerror (errno) );
 
   if (irdp_sock < 0) {
-    zlog_warn ("IRDP: can't create irdp socket %s", strerror(errno));
+    zlog_warn ("IRDP: can't create irdp socket %s", safe_strerror(errno));
     return irdp_sock;
   };
   
@@ -121,13 +121,13 @@ irdp_sock_init (void)
   ret = setsockopt (irdp_sock, IPPROTO_IP, IP_TTL, 
                         (void *) &i, sizeof (i));
   if (ret < 0) {
-    zlog_warn ("IRDP: can't do irdp sockopt %s", strerror(errno));
+    zlog_warn ("IRDP: can't do irdp sockopt %s", safe_strerror(errno));
     return ret;
   };
   
   ret = setsockopt_ifindex (AF_INET, irdp_sock, 1);
   if (ret < 0) {
-    zlog_warn ("IRDP: can't do irdp sockopt %s", strerror(errno));
+    zlog_warn ("IRDP: can't do irdp sockopt %s", safe_strerror(errno));
     return ret;
   };
 

+ 5 - 5
zebra/irdp_packet.c

@@ -206,7 +206,7 @@ int irdp_recvmsg (int sock, u_char *buf, int size, int *ifindex)
 
   ret = recvmsg (sock, &msg, 0);
   if (ret < 0) {
-    zlog_warn("IRDP: recvmsg: read error %s", strerror(errno));
+    zlog_warn("IRDP: recvmsg: read error %s", safe_strerror(errno));
     return ret;
   }
 
@@ -316,21 +316,21 @@ send_packet(struct interface *ifp,
   on = 1;
   if (setsockopt(irdp_sock, IPPROTO_IP, IP_HDRINCL,
 		 (char *) &on, sizeof(on)) < 0)
-    zlog_warn("sendto %s", strerror (errno));
+    zlog_warn("sendto %s", safe_strerror (errno));
 
 
   if(dst == INADDR_BROADCAST ) {
     on = 1;
     if (setsockopt(irdp_sock, SOL_SOCKET, SO_BROADCAST,
 		   (char *) &on, sizeof(on)) < 0)
-      zlog_warn("sendto %s", strerror (errno));
+      zlog_warn("sendto %s", safe_strerror (errno));
   }
 
   if(dst !=  INADDR_BROADCAST) {
       on = 0; 
       if( setsockopt(irdp_sock,IPPROTO_IP, IP_MULTICAST_LOOP, 
 		     (char *)&on,sizeof(on)) < 0)
-	zlog_warn("sendto %s", strerror (errno));
+	zlog_warn("sendto %s", safe_strerror (errno));
   }
 
   bzero(&sockdst,sizeof(sockdst));
@@ -359,7 +359,7 @@ send_packet(struct interface *ifp,
   sockopt_iphdrincl_swab_htosys (ip);
   
   if (sendmsg(irdp_sock, msg, 0) < 0) {
-    zlog_warn("sendto %s", strerror (errno));
+    zlog_warn("sendto %s", safe_strerror (errno));
   }
   /*   printf("TX on %s idx %d\n", ifp->name, ifp->ifindex); */
 }

+ 2 - 2
zebra/kernel_socket.c

@@ -798,7 +798,7 @@ rtm_write (int message,
       if (errno == ENETUNREACH)
 	return ZEBRA_ERR_RTUNREACH;
       
-      zlog_warn ("write : %s (%d)", strerror (errno), errno);
+      zlog_warn ("write : %s (%d)", safe_strerror (errno), errno);
       return -1;
     }
   return 0;
@@ -896,7 +896,7 @@ kernel_read (struct thread *thread)
   if (nbytes <= 0)
     {
       if (nbytes < 0 && errno != EWOULDBLOCK && errno != EAGAIN)
-	zlog_warn ("routing socket error: %s", strerror (errno));
+	zlog_warn ("routing socket error: %s", safe_strerror (errno));
       return 0;
     }
 

+ 4 - 4
zebra/rt_ioctl.c

@@ -151,7 +151,7 @@ kernel_add_route (struct prefix_ipv4 *dest, struct in_addr *gate,
 	}
 
       close (sock);
-      zlog_warn ("write : %s (%d)", strerror (errno), errno);
+      zlog_warn ("write : %s (%d)", safe_strerror (errno), errno);
       return 1;
     }
   close (sock);
@@ -326,7 +326,7 @@ kernel_ioctl_ipv4 (u_long cmd, struct prefix *p, struct rib *rib, int family)
 	}
 
       close (sock);
-      zlog_warn ("write : %s (%d)", strerror (errno), errno);
+      zlog_warn ("write : %s (%d)", safe_strerror (errno), errno);
       return ret;
     }
   close (sock);
@@ -411,7 +411,7 @@ kernel_ioctl_ipv6 (u_long type, struct prefix_ipv6 *dest, struct in6_addr *gate,
   if (ret < 0)
     {
       zlog_warn ("can't %s ipv6 route: %s\n", type == SIOCADDRT ? "add" : "delete", 
-	   strerror(errno));
+	   safe_strerror(errno));
       ret = errno;
       close (sock);
       return ret;
@@ -526,7 +526,7 @@ kernel_ioctl_ipv6_multipath (u_long cmd, struct prefix *p, struct rib *rib,
     {
       zlog_warn ("can't %s ipv6 route: %s\n",
 		 cmd == SIOCADDRT ? "add" : "delete", 
-	   strerror(errno));
+	   safe_strerror(errno));
       ret = errno;
       close (sock);
       return ret;

+ 13 - 13
zebra/rt_netlink.c

@@ -99,7 +99,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
   if (sock < 0)
     {
       zlog (NULL, LOG_ERR, "Can't open %s socket: %s", nl->name,
-            strerror (errno));
+            safe_strerror (errno));
       return -1;
     }
 
@@ -107,7 +107,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
   if (ret < 0)
     {
       zlog (NULL, LOG_ERR, "Can't set %s socket flags: %s", nl->name,
-            strerror (errno));
+            safe_strerror (errno));
       close (sock);
       return -1;
     }
@@ -125,7 +125,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
       if (ret < 0)
 	{
 	  zlog (NULL, LOG_ERR, "Can't get %s receive buffer size: %s", nl->name,
-		strerror (errno));
+		safe_strerror (errno));
 	  close (sock);
 	  return -1;
 	}
@@ -135,7 +135,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
       if (ret < 0)
 	{
 	  zlog (NULL, LOG_ERR, "Can't set %s receive buffer size: %s", nl->name,
-		strerror (errno));
+		safe_strerror (errno));
 	  close (sock);
 	  return -1;
 	}
@@ -144,7 +144,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
       if (ret < 0)
 	{
 	  zlog (NULL, LOG_ERR, "Can't get %s receive buffer size: %s", nl->name,
-		strerror (errno));
+		safe_strerror (errno));
 	  close (sock);
 	  return -1;
 	}
@@ -172,7 +172,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
   if (ret < 0)
     {
       zlog (NULL, LOG_ERR, "Can't bind %s socket to group 0x%x: %s",
-            nl->name, snl.nl_groups, strerror (errno));
+            nl->name, snl.nl_groups, safe_strerror (errno));
       close (sock);
       return -1;
     }
@@ -183,7 +183,7 @@ netlink_socket (struct nlsock *nl, unsigned long groups)
   if (ret < 0 || namelen != sizeof snl)
     {
       zlog (NULL, LOG_ERR, "Can't get %s socket name: %s", nl->name,
-            strerror (errno));
+            safe_strerror (errno));
       close (sock);
       return -1;
     }
@@ -201,14 +201,14 @@ set_netlink_blocking (struct nlsock *nl, int *flags)
   if ((*flags = fcntl (nl->sock, F_GETFL, 0)) < 0)
     {
       zlog (NULL, LOG_ERR, "%s:%i F_GETFL error: %s",
-            __FUNCTION__, __LINE__, strerror (errno));
+            __FUNCTION__, __LINE__, safe_strerror (errno));
       return -1;
     }
   *flags &= ~O_NONBLOCK;
   if (fcntl (nl->sock, F_SETFL, *flags) < 0)
     {
       zlog (NULL, LOG_ERR, "%s:%i F_SETFL error: %s",
-            __FUNCTION__, __LINE__, strerror (errno));
+            __FUNCTION__, __LINE__, safe_strerror (errno));
       return -1;
     }
   return 0;
@@ -222,7 +222,7 @@ set_netlink_nonblocking (struct nlsock *nl, int *flags)
   if (fcntl (nl->sock, F_SETFL, *flags) < 0)
     {
       zlog (NULL, LOG_ERR, "%s:%i F_SETFL error: %s",
-            __FUNCTION__, __LINE__, strerror (errno));
+            __FUNCTION__, __LINE__, safe_strerror (errno));
       return -1;
     }
   return 0;
@@ -277,7 +277,7 @@ netlink_request (int family, int type, struct nlsock *nl)
   if (ret < 0)
     {
       zlog (NULL, LOG_ERR, "%s sendto failed: %s", nl->name,
-            strerror (errno));
+            safe_strerror (errno));
       return -1;
     }
 
@@ -392,7 +392,7 @@ netlink_parse_info (int (*filter) (struct sockaddr_nl *, struct nlmsghdr *),
 
                 zlog (NULL, loglvl, "%s error: %s, type=%s(%u), "
                       "seq=%u, pid=%d",
-                      nl->name, strerror (-errnum),
+                      nl->name, safe_strerror (-errnum),
                       lookup (nlmsg_str, msg_type),
                       msg_type, err->msg.nlmsg_seq, err->msg.nlmsg_pid);
               }
@@ -1227,7 +1227,7 @@ netlink_talk (struct nlmsghdr *n, struct nlsock *nl)
   if (status < 0)
     {
       zlog (NULL, LOG_ERR, "netlink_talk sendmsg() error: %s",
-            strerror (errno));
+            safe_strerror (errno));
       return -1;
     }
 

+ 7 - 7
zebra/rtadv.c

@@ -301,7 +301,7 @@ rtadv_send_packet (int sock, struct interface *ifp)
   if (ret < 0)
     {
       zlog_err ("rtadv_send_packet: sendmsg %d (%s)\n",
-		errno, strerror(errno));
+		errno, safe_strerror(errno));
     }
 }
 
@@ -425,7 +425,7 @@ rtadv_read (struct thread *thread)
 
   if (len < 0) 
     {
-      zlog_warn ("router solicitation recv failed: %s.", strerror (errno));
+      zlog_warn ("router solicitation recv failed: %s.", safe_strerror (errno));
       return len;
     }
 
@@ -443,13 +443,13 @@ rtadv_make_socket (void)
 
   if ( zserv_privs.change (ZPRIVS_RAISE) )
        zlog_err ("rtadv_make_socket: could not raise privs, %s",
-                  strerror (errno) );
+                  safe_strerror (errno) );
                   
   sock = socket (AF_INET6, SOCK_RAW, IPPROTO_ICMPV6);
 
   if ( zserv_privs.change (ZPRIVS_LOWER) )
        zlog_err ("rtadv_make_socket: could not lower privs, %s",
-       			 strerror (errno) );
+       			 safe_strerror (errno) );
 
   /* When we can't make ICMPV6 socket simply back.  Router
      advertisement feature will not be supported. */
@@ -480,7 +480,7 @@ rtadv_make_socket (void)
 		    sizeof (struct icmp6_filter));
   if (ret < 0)
     {
-      zlog_info ("ICMP6_FILTER set fail: %s", strerror (errno));
+      zlog_info ("ICMP6_FILTER set fail: %s", safe_strerror (errno));
       return ret;
     }
 
@@ -1223,7 +1223,7 @@ if_join_all_router (int sock, struct interface *ifp)
   ret = setsockopt (sock, IPPROTO_IPV6, IPV6_JOIN_GROUP, 
 		    (char *) &mreq, sizeof mreq);
   if (ret < 0)
-    zlog_warn ("can't setsockopt IPV6_JOIN_GROUP: %s", strerror (errno));
+    zlog_warn ("can't setsockopt IPV6_JOIN_GROUP: %s", safe_strerror (errno));
 
   zlog_info ("rtadv: %s join to all-routers multicast group", ifp->name);
 
@@ -1244,7 +1244,7 @@ if_leave_all_router (int sock, struct interface *ifp)
   ret = setsockopt (sock, IPPROTO_IPV6, IPV6_LEAVE_GROUP, 
 		    (char *) &mreq, sizeof mreq);
   if (ret < 0)
-    zlog_warn ("can't setsockopt IPV6_LEAVE_GROUP: %s", strerror (errno));
+    zlog_warn ("can't setsockopt IPV6_LEAVE_GROUP: %s", safe_strerror (errno));
 
   zlog_info ("rtadv: %s leave from all-routers multicast group", ifp->name);
 

+ 5 - 5
zebra/rtread_getmsg.c

@@ -108,7 +108,7 @@ void route_read ()
 
 	if ((dev = open (_PATH_GETMSG_ROUTE, O_RDWR)) == -1) {
 		zlog_warn ("can't open %s: %s", _PATH_GETMSG_ROUTE,
-			strerror (errno));
+			safe_strerror (errno));
 		return;
 	}
 
@@ -129,7 +129,7 @@ void route_read ()
 	flags = 0;
 
 	if (putmsg (dev, &msgdata, NULL, flags) == -1) {
-		zlog_warn ("putmsg failed: %s", strerror (errno));
+		zlog_warn ("putmsg failed: %s", safe_strerror (errno));
 		goto exit;
 	}
 
@@ -141,7 +141,7 @@ void route_read ()
 		retval = getmsg (dev, &msgdata, NULL, &flags);
 
 		if (retval == -1) {
-			zlog_warn ("getmsg(ctl) failed: %s", strerror (errno));
+			zlog_warn ("getmsg(ctl) failed: %s", safe_strerror (errno));
 			goto exit;
 		}
 
@@ -156,7 +156,7 @@ void route_read ()
 		if (msgdata.len >= sizeof (struct T_error_ack) &&
 			TLIerr->PRIM_type == T_ERROR_ACK) {
 			zlog_warn ("getmsg(ctl) returned T_ERROR_ACK: %s",
-				strerror ((TLIerr->TLI_error == TSYSERR)
+				safe_strerror ((TLIerr->TLI_error == TSYSERR)
 				? TLIerr->UNIX_error : EPROTO));
 			break;
 		}
@@ -196,7 +196,7 @@ void route_read ()
 
 			if (retval == -1) {
 				zlog_warn ("getmsg(data) failed: %s",
-					strerror (errno));
+					safe_strerror (errno));
 				goto exit;
 			}
 

+ 2 - 2
zebra/rtread_proc.c

@@ -56,7 +56,7 @@ proc_route_read ()
   fp = fopen (_PATH_PROCNET_ROUTE, "r");
   if (fp == NULL)
     {
-      zlog_warn ("Can't open %s : %s\n", _PATH_PROCNET_ROUTE, strerror (errno));
+      zlog_warn ("Can't open %s : %s\n", _PATH_PROCNET_ROUTE, safe_strerror (errno));
       return -1;
     }
   
@@ -111,7 +111,7 @@ proc_ipv6_route_read ()
   if (fp == NULL)
     {
       zlog_warn ("Can't open %s : %s", _PATH_PROCNET_ROUTE6, 
-		strerror (errno));
+		safe_strerror (errno));
       return -1;
     }
   

+ 2 - 2
zebra/rtread_sysctl.c

@@ -48,7 +48,7 @@ route_read ()
   /* Get buffer size. */
   if (sysctl (mib, MIBSIZ, NULL, &bufsiz, NULL, 0) < 0) 
     {
-      zlog_warn ("sysctl fail: %s", strerror (errno));
+      zlog_warn ("sysctl fail: %s", safe_strerror (errno));
       return -1;
     }
 
@@ -58,7 +58,7 @@ route_read ()
   /* Read routing table information by calling sysctl(). */
   if (sysctl (mib, MIBSIZ, buf, &bufsiz, NULL, 0) < 0) 
     {
-      zlog_warn ("sysctl() fail by %s", strerror (errno));
+      zlog_warn ("sysctl() fail by %s", safe_strerror (errno));
       return -1;
     }
 

+ 4 - 4
zebra/zserv.c

@@ -1369,7 +1369,7 @@ zebra_accept (struct thread *thread)
 
   if (client_sock < 0)
     {
-      zlog_warn ("Can't accept zebra socket: %s", strerror (errno));
+      zlog_warn ("Can't accept zebra socket: %s", safe_strerror (errno));
       return -1;
     }
 
@@ -1400,7 +1400,7 @@ zebra_serv ()
 
   if (accept_sock < 0) 
     {
-      zlog_warn ("Can't bind to socket: %s", strerror (errno));
+      zlog_warn ("Can't bind to socket: %s", safe_strerror (errno));
       zlog_warn ("zebra can't provice full functionality due to above error");
       return;
     }
@@ -1423,7 +1423,7 @@ zebra_serv ()
 	       sizeof (struct sockaddr_in));
   if (ret < 0)
     {
-      zlog_warn ("Can't bind to socket: %s", strerror (errno));
+      zlog_warn ("Can't bind to socket: %s", safe_strerror (errno));
       zlog_warn ("zebra can't provice full functionality due to above error");
       close (accept_sock);      /* Avoid sd leak. */
       return;
@@ -1435,7 +1435,7 @@ zebra_serv ()
   ret = listen (accept_sock, 1);
   if (ret < 0)
     {
-      zlog_warn ("Can't listen to socket: %s", strerror (errno));
+      zlog_warn ("Can't listen to socket: %s", safe_strerror (errno));
       zlog_warn ("zebra can't provice full functionality due to above error");
       close (accept_sock);	/* Avoid sd leak. */
       return;