Skip to content

Commit

Permalink
resolved: pin stream while calling callbacks for it
Browse files Browse the repository at this point in the history
These callbacks might unref the stream, but we still have to access it,
let's hence ref it explicitly.

Maybe fixes: #10725
  • Loading branch information
poettering committed Dec 7, 2018
1 parent 904dcaf commit d973d94
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/resolve/resolved-dns-stream.c
Expand Up @@ -46,6 +46,8 @@ static int dns_stream_update_io(DnsStream *s) {
}

static int dns_stream_complete(DnsStream *s, int error) {
_cleanup_(dns_stream_unrefp) _unused_ DnsStream *ref = dns_stream_ref(s); /* Protect stream while we process it */

assert(s);

#if ENABLE_DNS_OVER_TLS
Expand Down Expand Up @@ -273,7 +275,7 @@ static int on_stream_timeout(sd_event_source *es, usec_t usec, void *userdata) {
}

static int on_stream_io(sd_event_source *es, int fd, uint32_t revents, void *userdata) {
DnsStream *s = userdata;
_cleanup_(dns_stream_unrefp) DnsStream *s = dns_stream_ref(userdata); /* Protect stream while we process it */
int r;

assert(s);
Expand Down

0 comments on commit d973d94

Please sign in to comment.