resolved: block transaction GC'ing while dns_transaction_request_dnssec_keys() is...
authorLennart Poettering <lennart@poettering.net>
Mon, 4 Jan 2016 21:22:47 +0000 (22:22 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 4 Jan 2016 21:42:10 +0000 (22:42 +0100)
commit51e399bcebefb27d6b147d90de84d07f010fa170
tree7c20b6da45f363454de9fa89beac189cfeb71efe
parent3347e6a299983557d27b7ff950199f2eda6d9bd9
resolved: block transaction GC'ing while dns_transaction_request_dnssec_keys() is running

If any of the transactions started by
dns_transaction_request_dnssec_keys() finishes promptly without
requiring asynchronous operation this is reported back to the issuing
transaction from the same stackframe. This might ultimately result in
this transaction to be freed while we are still in its
_request_dnssec_keys() stack frame. To avoid memory corruption block the
transaction GC while in the call, and manually issue a GC after it
returned.
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-dns-transaction.h