[lib] Fix the struct message LOOKUP function to be more robust

2008-02-28 Paul Jakma <paul.jakma@sun.com>

	* log.c: (mes_lookup) Sowmini Varadhan diagnosed a problem where
	  this function can cause a NULL dereference, on lookups for unknown
	  indices, or messages with NULL strings. Can occur, e.g., debug
	  logging code when processing received messages. Fixed to accept a
	  pointer to a default string to be used if there is no match.
	* log.h: LOOKUP adjusted to match
diff --git a/lib/log.h b/lib/log.h
index da8fbea..7432b25 100644
--- a/lib/log.h
+++ b/lib/log.h
@@ -142,10 +142,12 @@
 extern int zlog_rotate (struct zlog *);
 
 /* For hackey massage lookup and check */
-#define LOOKUP(x, y) mes_lookup(x, x ## _max, y)
+#define LOOKUP(x, y) mes_lookup(x, x ## _max, y, "(no item found)")
 
 extern const char *lookup (struct message *, int);
-extern const char *mes_lookup (struct message *meslist, int max, int index);
+extern const char *mes_lookup (struct message *meslist, 
+                               int max, int index,
+                               const char *no_item);
 
 extern const char *zlog_priority[];
 extern const char *zlog_proto_names[];