加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
backport-resolved-fix-ResolveService-hostname-handling.patch 1.68 KB
一键复制 编辑 原始数据 按行查看 历史
From 70f465cb5d10b7bcd7bd7c326756d542e59c0e0b Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 22 Nov 2021 14:37:54 +0100
Subject: [PATCH] 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)
(cherry picked from commit 5a78106ad92d3f122f7ac653eecf767f0a8948cf)
Conflict:NA
Reference:https://github.com/systemd/systemd/commit/70f465cb5d10b7bcd7bd7c326756d542e59c0e0b
---
src/resolve/resolved-bus.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c
index 7226200f00..78d1acf5e0 100644
--- a/src/resolve/resolved-bus.c
+++ b/src/resolve/resolved-bus.c
@@ -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);
}
--
2.33.0
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化