From 24f3d0dfeff80caad8f9b871d58b877f3cc0a7a8 Mon Sep 17 00:00:00 2001 From: mquinson Date: Sat, 14 Jul 2007 10:02:32 +0000 Subject: [PATCH 1/1] If the element is not found, don't try to continue but report the issue before it causes a segfault git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3783 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/surf/workstation_KCCFLN05.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/surf/workstation_KCCFLN05.c b/src/surf/workstation_KCCFLN05.c index 09b44c494b..e71eb14d01 100644 --- a/src/surf/workstation_KCCFLN05.c +++ b/src/surf/workstation_KCCFLN05.c @@ -76,7 +76,14 @@ static void __update_cpu_usage(cpu_KCCFLN05_t cpu) static void *name_service(const char *name) { - return xbt_dict_get_or_null(workstation_set, name); + xbt_ex_t e; + void *res; + TRY { + res = xbt_dict_get(workstation_set, name); + } CATCH(e) { + RETHROW1("Host '%s' not found (dict raised this exception: %s)",name); + } + return res; } static const char *get_resource_name(void *resource_id) @@ -926,11 +933,16 @@ static void parse_route_set_endpoints(void) static void parse_route_elem(void) { + xbt_ex_t e; if (nb_link == link_list_capacity) { link_list_capacity *= 2; link_list = xbt_realloc(link_list, (link_list_capacity) * sizeof(network_link_KCCFLN05_t)); } - link_list[nb_link++] = xbt_dict_get_or_null(network_link_set, A_surfxml_route_element_name); + TRY { + link_list[nb_link++] = xbt_dict_get(network_link_set, A_surfxml_route_element_name); + } CATCH(e) { + RETHROW1("Link %s not found (dict raised this exception: %s)",A_surfxml_route_element_name); + } } static void parse_route_set_route(void) -- 2.20.1