diff options
author | Michael Kaufmann <mail@michael-kaufmann.ch> | 2017-06-06 22:15:17 +0200 |
---|---|---|
committer | Michael Kaufmann <mail@michael-kaufmann.ch> | 2017-06-11 17:32:02 +0200 |
commit | e8fecf2614b479d2448c61159b4a7dadf4cf7df9 (patch) | |
tree | a7c995c629c953a151903f6f3b25ea50c4403b04 /src | |
parent | 916ec30a92a6a497a89172533830f1593591e875 (diff) | |
download | curl-e8fecf2614b479d2448c61159b4a7dadf4cf7df9.tar.gz |
FindWin32CACert: Use a temporary buffer on the stack
Don't malloc() the temporary buffer, and use the correct type:
SearchPath() works with TCHAR, but SearchPathA() works with char.
Set the buffer size to MAX_PATH, because the terminating null byte
is already included in MAX_PATH.
Reviewed-by: Daniel Stenberg
Reviewed-by: Marcel Raad
Closes #1548
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_doswin.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/tool_doswin.c b/src/tool_doswin.c index 48af3bfb8..91299986a 100644 --- a/src/tool_doswin.c +++ b/src/tool_doswin.c @@ -646,24 +646,18 @@ CURLcode FindWin32CACert(struct OperationConfig *config, if(curlinfo->features & CURL_VERSION_SSL) { DWORD res_len; - DWORD buf_tchar_size = PATH_MAX + 1; - DWORD buf_bytes_size = sizeof(TCHAR) * buf_tchar_size; + char buf[PATH_MAX]; char *ptr = NULL; - char *buf = malloc(buf_bytes_size); - if(!buf) - return CURLE_OUT_OF_MEMORY; buf[0] = '\0'; - res_len = SearchPathA(NULL, bundle_file, NULL, buf_tchar_size, buf, &ptr); + res_len = SearchPathA(NULL, bundle_file, NULL, PATH_MAX, buf, &ptr); if(res_len > 0) { Curl_safefree(config->cacert); config->cacert = strdup(buf); if(!config->cacert) result = CURLE_OUT_OF_MEMORY; } - - Curl_safefree(buf); } return result; |