Fix inverted gethostname() check in rndc status

When named_os_gethostname() was replaced with raw gethostname(), the
success/failure polarity was flipped: the fallback to "localhost" now
runs on success and the hostname buffer is left uninitialized on
failure.  In the failure path, snprintf() then reads the uninitialized
stack buffer, disclosing stack contents via the rndc status reply.
This commit is contained in:
Ondřej Surý 2026-04-17 16:28:50 +02:00
parent 6fc2e8d420
commit f7859247df

View file

@ -11599,7 +11599,7 @@ named_server_status(named_server_t *server, isc_buffer_t *text) {
cb);
CHECK(putstr(text, line));
if (gethostname(hostname, sizeof(hostname)) == 0) {
if (gethostname(hostname, sizeof(hostname)) != 0) {
strlcpy(hostname, "localhost", sizeof(hostname));
}
snprintf(line, sizeof(line), "running on %s: %s\n", hostname,