Index: trunk/src/plugins/rt_topo/crbs.h =================================================================== --- trunk/src/plugins/rt_topo/crbs.h (revision 1406) +++ trunk/src/plugins/rt_topo/crbs.h (revision 1407) @@ -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; + grbs_detached_addr_t *det; /* 2 entries */ void *mark; } htad_value_t; #define HT_INVALID_VALUE (htad_value_t){0} Index: trunk/src/plugins/rt_topo/crbs_route.c =================================================================== --- trunk/src/plugins/rt_topo/crbs_route.c (revision 1406) +++ trunk/src/plugins/rt_topo/crbs_route.c (revision 1407) @@ -183,7 +183,7 @@ { grbs_addr_t *froma, *toa; grbs_2net_t *gtn = crbs->routing_tn; - grbs_detached_addr_t *res = NULL, dtmp; + grbs_detached_addr_t *res = NULL, dtmp[2]; char tmp[128]; hop_cnt++; @@ -235,8 +235,8 @@ } } - grbs_detach_addr(&crbs->grbs, &dtmp, toa); - key = grbs_det_addr_to_key(&dtmp); + grbs_detach_addr(&crbs->grbs, dtmp, toa); + key = grbs_det_addr_to_key(dtmp); e = htad_getentry(&crbs->addrs, key); if (e == NULL) { htad_value_t val = {0}; @@ -243,7 +243,7 @@ val.valid = 1; #warning TODO: allocate this with ualloc stacks - val.det = res = calloc(sizeof(grbs_detached_addr_t), 1); + res = val.det = calloc(sizeof(grbs_detached_addr_t), 2); 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");*/