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 */