From: Vilmos Nebehaj Date: Fri, 21 Mar 2014 13:38:11 +0000 (+0100) Subject: Don't truncate hosts file path on Windows. X-Git-Tag: release-2.1.5-beta~35^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d0dc861b881e129ab9afb26cfe5df99187eeb53d;p=libevent Don't truncate hosts file path on Windows. Since evutil_snprintf() (actually evutil_vsnprintf() called by it) will make sure the buffer is null-terminated by placing a null byte at len_out - 1, we need to pass the full length of the buffer; otherwise the path will end in "\\host" instead of "\\hosts". --- diff --git a/evdns.c b/evdns.c index a143074d..a1d8c95a 100644 --- a/evdns.c +++ b/evdns.c @@ -3555,8 +3555,8 @@ evdns_get_default_hosts_filename(void) if (! SHGetSpecialFolderPathA(NULL, path, CSIDL_SYSTEM, 0)) return NULL; - len_out = strlen(path)+strlen(hostfile); - path_out = mm_malloc(len_out+1); + len_out = strlen(path)+strlen(hostfile)+1; + path_out = mm_malloc(len_out); evutil_snprintf(path_out, len_out, "%s%s", path, hostfile); return path_out; #else