So the segfault was on destroying the req->extensions dict.
This dict should have been initialized by dns_req_new, when it copied the extensions dict that it had as an argument.
Though, the argument could have been NULL in which case nothing is copied.
To overcome, I've altered dnsget_dict_copy to initialize the target with NULL when the src was NULL.