mirror of
https://github.com/systemd/systemd.git
synced 2025-03-16 10:50:18 +03:00
resolved: fix ResolveService() hostname handling
Let's eat up special returns of dns_query_process_cname_many() when storing hostname resolution results. The rest of the code assumes only == 0 means success and != 0 means error, but so far > 0 also could mean success, let's fix that. Fixes: #21365 #21140 (This was originally broken in 1db8e6d1db0880de240e5598e28d24d708479434)
This commit is contained in:
parent
fb9044cb6b
commit
5a78106ad9
@ -1005,6 +1005,7 @@ static void resolve_service_all_complete(DnsQuery *q) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
assert(bad->auxiliary_result < 0);
|
||||
r = bad->auxiliary_result;
|
||||
goto finish;
|
||||
}
|
||||
@ -1112,7 +1113,7 @@ static void resolve_service_hostname_complete(DnsQuery *q) {
|
||||
return;
|
||||
|
||||
/* This auxiliary lookup is finished or failed, let's see if all are finished now. */
|
||||
q->auxiliary_result = r;
|
||||
q->auxiliary_result = r < 0 ? r : 0;
|
||||
resolve_service_all_complete(q->auxiliary_for);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user