Skip to content

Commit a33748d

Browse files
committed
NULL pointer dereference found by @MicroMilo
1 parent 31588e6 commit a33748d

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

src/fdns/server.c

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -666,17 +666,28 @@ DnsServer *server_get(void) {
666666
s = random_server();
667667
if (s == first) // try again
668668
s = random_server();
669-
scurrent = s;
670-
qaverage = test_server(s->name);
671-
stats.query_time = qaverage;
672669

673-
// grab the fastest one
674-
if (qaverage == 0 || qaverage > first_average) {
670+
// no servers left!
671+
if (s == NULL) {
675672
// revert back to the first server
676673
scurrent = first;
677674
s = first;
678675
stats.query_time = first_average;
679676
}
677+
678+
else {
679+
scurrent = s;
680+
qaverage = test_server(s->name);
681+
stats.query_time = qaverage;
682+
683+
// grab the fastest one
684+
if (qaverage == 0 || qaverage > first_average) {
685+
// revert back to the first server
686+
scurrent = first;
687+
s = first;
688+
stats.query_time = first_average;
689+
}
690+
}
680691
}
681692
}
682693
}

0 commit comments

Comments
 (0)