2004-11-19 David Young <dyoung@pobox.com>

	* log.c: (safe_strerror) New function: safe wrapper for strerror.
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 06b4625..75cf844 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,7 @@
+2004-11-19 David Young <dyoung@pobox.com>
+
+	* log.c: (safe_strerror) New function: safe wrapper for strerror.
+
 2004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* sockopt.c: (setsockopt_so_recvbuf) Stop error message from being
diff --git a/lib/log.c b/lib/log.c
index 375730f..b24dacd 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -498,3 +498,11 @@
     }
   return meslist[index].str;
 }
+
+/* Wrapper around strerror to handle case where it returns NULL. */
+const char *
+safe_strerror(int errnum)
+{
+  const char *s = strerror(errnum);
+  return (s != NULL) ? s : "Unknown error";
+}
diff --git a/lib/log.h b/lib/log.h
index 9f6ec3b..b5dbdfe 100644
--- a/lib/log.h
+++ b/lib/log.h
@@ -126,4 +126,7 @@
 
 extern const char *zlog_priority[];
 
+/* Safe version of strerror -- never returns NULL. */
+extern const char *safe_strerror(int errnum);
+
 #endif /* _ZEBRA_LOG_H */