From d0992bc9c424b331bf07cb424b78864cfb750f6b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zden=C4=9Bk=20Salvet?= Date: Wed, 29 Aug 2007 15:47:18 +0000 Subject: [PATCH] Handle holes in EventCode enum gracefully in to_string conversions. --- org.glite.lb.client/src/Event.cpp.T | 11 ++++++++++- org.glite.lb.common/src/events.c.T | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/org.glite.lb.client/src/Event.cpp.T b/org.glite.lb.client/src/Event.cpp.T index e7faae3..e7d0f2e 100644 --- a/org.glite.lb.client/src/Event.cpp.T +++ b/org.glite.lb.client/src/Event.cpp.T @@ -389,12 +389,21 @@ std::vector > const & Event::getAttrs(voi const std::string Event::getEventName(Type type) { + char *s; + if(type < 0 || type >= TYPE_MAX) { STACK_ADD; throw(Exception(EXCEPTION_MANDATORY, EINVAL, "invalid event type")); } - return std::string(edg_wll_EventToString(edg_wll_EventCode(type))); + s = edg_wll_EventToString(edg_wll_EventCode(type)); + if (!s) { + STACK_ADD; + throw(Exception(EXCEPTION_MANDATORY, EINVAL, "invalid event type")); + } + std::string ret(s); + free(s); + return ret; } diff --git a/org.glite.lb.common/src/events.c.T b/org.glite.lb.common/src/events.c.T index 7916339..75939d1 100644 --- a/org.glite.lb.common/src/events.c.T +++ b/org.glite.lb.common/src/events.c.T @@ -76,7 +76,7 @@ edg_wll_EventCode edg_wll_StringToEvent(const char *name) char *edg_wll_EventToString(edg_wll_EventCode event) { if ((int)event < 0 || event >= sizeof(eventNames)/sizeof(eventNames[0])) return NULL; - return strdup(eventNames[event]); + return eventNames[event] ? strdup(eventNames[event]) : NULL; } -- 1.8.2.3