Skip to content

Commit 1bd459a

Browse files
Correcly handle comments appended to nameserver declarations (#14658)
Motivation: We need to ensure we correctly filter out appended comments in resolv.conf Modifications: - Skip comments - Add unit test Result: Fixes #14514 --------- Co-authored-by: Bryce Anderson <bl_anderson@apple.com>
1 parent ad00d19 commit 1bd459a

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

resolver-dns/src/main/java/io/netty/resolver/dns/ResolvConf.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,15 @@ private ResolvConf(BufferedReader reader) throws IOException {
8080
}
8181

8282
if (ln.startsWith("nameserver")) {
83-
ln = ln.substring("nameserver".length()).trim();
83+
ln = ln.substring("nameserver".length());
84+
int cIndex = ln.indexOf('#');
85+
if (cIndex != -1) {
86+
ln = ln.substring(0, cIndex);
87+
}
88+
ln = ln.trim();
89+
if (ln.isEmpty()) {
90+
continue;
91+
}
8492
nameservers.add(new InetSocketAddress(ln, 53));
8593
}
8694
}

resolver-dns/src/test/java/io/netty/resolver/dns/ResolvConfTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ public void readSystem() {
4848
@MethodSource
4949
public void scenarios(String resolvConf, List<String> nameservers) throws Exception {
5050
assertIterableEquals(
51-
ResolvConf.fromReader(new BufferedReader(new StringReader(resolvConf))).getNameservers(),
5251
nameservers.stream().map(new Function<String, InetSocketAddress>() {
5352
@Override
5453
public InetSocketAddress apply(String n) {
5554
return new InetSocketAddress(n, 53);
5655
}
57-
}).collect(Collectors.toList()));
56+
}).collect(Collectors.toList()),
57+
ResolvConf.fromReader(new BufferedReader(new StringReader(resolvConf))).getNameservers());
5858
}
5959

6060
static List<Arguments> scenarios() {
@@ -74,6 +74,11 @@ static List<Arguments> scenarios() {
7474
+ "nameserver 1.2.3.4\n"
7575
+ "nameserver 127.1.2.3",
7676
Arrays.asList("1.2.3.4", "127.1.2.3")),
77+
arguments(
78+
"# some comment\n"
79+
+ "nameserver 1.2.3.4 # comment\n"
80+
+ "nameserver 127.1.2.3",
81+
Arrays.asList("1.2.3.4", "127.1.2.3")),
7782
arguments(
7883
"# some comment\n" + "nameserver 0:0:0:0:0:0:0:1\n" + "nameserver 127.0.0.1",
7984
Arrays.asList("0:0:0:0:0:0:0:1", "127.0.0.1")),

0 commit comments

Comments
 (0)