Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Check if string is NULL before a strcmp
[simgrid.git] / src / surf / surf_routing.c
index 371019e..f9c6dc4 100644 (file)
@@ -206,7 +206,7 @@ static void parse_S_router(sg_platf_router_cbarg_t router)
   xbt_lib_set(as_router_lib, router->id, ROUTING_ASR_LEVEL, (void *) info);
   XBT_DEBUG("Having set name '%s' id '%d'",router->id,info->id);
 
-  if (strcmp(router->coord, "")) {
+  if (router->coord && strcmp(router->coord, "")) {
     unsigned int cursor;
     char*str;
 
@@ -793,7 +793,6 @@ static void routing_parse_cabinet(sg_platf_cabinet_cbarg_t cabinet)
   xbt_dynar_t radical_elements;
   xbt_dynar_t radical_ends;
 
-  XBT_INFO("See cabinet: %s",cabinet->id);
   //Make all hosts
   radical_elements = xbt_str_split(cabinet->radical, ",");
   xbt_dynar_foreach(radical_elements, iter, groups) {
@@ -868,8 +867,8 @@ static void routing_parse_cluster(sg_platf_cluster_cbarg_t cluster)
   xbt_dynar_t radical_elements;
   xbt_dynar_t radical_ends;
 
-  if (strcmp(cluster->availability_trace, "")
-      || strcmp(cluster->state_trace, "")) {
+  if ((cluster->availability_trace && strcmp(cluster->availability_trace, ""))
+      || (cluster->state_trace && strcmp(cluster->state_trace, ""))) {
     patterns = xbt_dict_new_homogeneous(xbt_free_f);
     xbt_dict_set(patterns, "id", xbt_strdup(cluster->id), NULL);
     xbt_dict_set(patterns, "prefix", xbt_strdup(cluster->prefix), NULL);
@@ -909,7 +908,7 @@ static void routing_parse_cluster(sg_platf_cluster_cbarg_t cluster)
 
       memset(&host, 0, sizeof(host));
       host.id = host_id;
-      if (strcmp(cluster->availability_trace, "")) {
+      if (cluster->availability_trace && strcmp(cluster->availability_trace, "")) {
         xbt_dict_set(patterns, "radical", bprintf("%d", i), NULL);
         char *avail_file = xbt_str_varsubst(cluster->availability_trace, patterns);
         XBT_DEBUG("\tavailability_file=\"%s\"", avail_file);
@@ -919,7 +918,7 @@ static void routing_parse_cluster(sg_platf_cluster_cbarg_t cluster)
         XBT_DEBUG("\tavailability_file=\"\"");
       }
 
-      if (strcmp(cluster->state_trace, "")) {
+      if (cluster->state_trace && strcmp(cluster->state_trace, "")) {
         char *avail_file = xbt_str_varsubst(cluster->state_trace, patterns);
         XBT_DEBUG("\tstate_file=\"%s\"", avail_file);
         host.state_trace = tmgr_trace_new_from_file(avail_file);