return rv;
}
-static allocnode *alloc_info(void *p, size_t *sz_r)
+static allocnode *alloc_info(adns_query qu, void *p, size_t *sz_r)
{
allocnode *an;
- if (!p) { *sz_r = 0; return 0; }
+ if (!p || p == qu) { *sz_r = 0; return 0; }
an = (allocnode *)((byte *)p - MEM_ROUND(sizeof(allocnode)));
*sz_r = MEM_ROUND(an->sz);
return an;
void adns__free_interim(adns_query qu, void *p) {
size_t sz;
- allocnode *an = alloc_info(p, &sz);
+ allocnode *an = alloc_info(qu, p, &sz);
if (!an) return;
assert(!qu->final_allocspace);
void adns__transfer_interim(adns_query from, adns_query to, void *block) {
size_t sz;
- allocnode *an = alloc_info(block, &sz);
+ allocnode *an = alloc_info(from, block, &sz);
if (!an) return;