In function Req_cache::remove on ports-foc/src/lib/l4lx/genode_block.cc file:
void remove(void *packet, void **request) { int idx = _find(packet);
if (idx < 0) { *request = 0; PERR("Req cache entry not found!"); } *request = _cache[idx].req; // <--- if idx is -1, this negative index used for access _cache array elements _cache[idx].pkt = 0; _cache[idx].req = 0; }
should be:
void remove(void *packet, void **request) { int idx = _find(packet);
if (idx < 0) { *request = 0; PERR("Req cache entry not found!"); } else { *request = _cache[idx].req; _cache[idx].pkt = 0; _cache[idx].req = 0; } }