summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorajs <ajs>2004-11-19 23:40:16 +0000
committerajs <ajs>2004-11-19 23:40:16 +0000
commitca35976927190883368ef3bd32bbf9f174575bd6 (patch)
treeaa3b9fa981719c48f0418abb06355e88ee39dbcb
parentff29bb31505b485e8ffa561e21d075d28ac7d5e7 (diff)
2004-11-19 David Young <dyoung@pobox.com>
* log.c: (safe_strerror) New function: safe wrapper for strerror.
-rw-r--r--lib/ChangeLog4
-rw-r--r--lib/log.c8
-rw-r--r--lib/log.h3
3 files changed, 15 insertions, 0 deletions
diff --git a/lib/ChangeLog b/lib/ChangeLog
index 06b46258..75cf8449 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 375730f2..b24dacd8 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -498,3 +498,11 @@ mes_lookup (struct message *meslist, int max, int index)
}
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 9f6ec3be..b5dbdfe1 100644
--- a/lib/log.h
+++ b/lib/log.h
@@ -126,4 +126,7 @@ const char *mes_lookup (struct message *meslist, int max, int index);
extern const char *zlog_priority[];
+/* Safe version of strerror -- never returns NULL. */
+extern const char *safe_strerror(int errnum);
+
#endif /* _ZEBRA_LOG_H */