Index: plugins/rt_topo/crbs.h =================================================================== --- plugins/rt_topo/crbs.h (revision 1423) +++ plugins/rt_topo/crbs.h (revision 1424) @@ -14,7 +14,7 @@ typedef grbs_addr_key_t htad_key_t; typedef struct htad_value_s { unsigned valid:1; - grbs_detached_addr_t *det; /* 2 entries */ + grbs_detached_addr_t *det; /* 3 entries */ void *mark; } htad_value_t; #define HT_INVALID_VALUE (htad_value_t){0} Index: plugins/rt_topo/crbs_route.c =================================================================== --- plugins/rt_topo/crbs_route.c (revision 1423) +++ plugins/rt_topo/crbs_route.c (revision 1424) @@ -185,7 +185,7 @@ { grbs_addr_t *froma, *toa; grbs_2net_t *gtn = crbs->routing_tn; - grbs_detached_addr_t *res = NULL, dtmp[2]; + grbs_detached_addr_t *res = NULL, dtmp[3]; char tmp[128]; hop_cnt++; @@ -245,7 +245,7 @@ val.valid = 1; #warning TODO: allocate this with ualloc stacks - res = val.det = calloc(sizeof(grbs_detached_addr_t), 2); + res = val.det = calloc(sizeof(grbs_detached_addr_t), 3); memcpy(val.det, &dtmp, sizeof(dtmp)); val.det->user_long = adir; /* printf("\nDET SET: key: "); print_detkey(key); printf(" | det: ");print_det(res); printf("\n");*/ @@ -377,8 +377,8 @@ val.valid = 1; #warning TODO: allocate this with ualloc stacks - val.det = calloc(sizeof(grbs_detached_addr_t), 2); - memcpy(val.det, det, sizeof(grbs_detached_addr_t)*2); + val.det = calloc(sizeof(grbs_detached_addr_t), 3); + memcpy(val.det, det, sizeof(grbs_detached_addr_t)*3); /* printf("\nDET SET: key: "); print_detkey(key); printf(" | det: ");print_det(res); printf("\n");*/ htad_set(&crbs->addrs, grbs_det_addr_to_key(val.det), val); e = htad_getentry(&crbs->addrs, grbs_det_addr_to_key(det));