mirror of
https://github.com/curl/curl.git
synced 2026-07-25 14:37:17 +03:00
strerror: repair get_winsock_error()
It would try to read longer than the provided string and crash.
Follow-up to ff74cef5d4
Reported-by: calvin2021y on github
Fixes #12578
Closes #12579
This commit is contained in:
parent
5d2b0faec2
commit
a719be81e9
1 changed files with 5 additions and 5 deletions
|
|
@ -582,11 +582,10 @@ get_winsock_error(int err, char *buf, size_t len)
|
|||
{
|
||||
#ifndef CURL_DISABLE_VERBOSE_STRINGS
|
||||
const char *p;
|
||||
size_t alen;
|
||||
#endif
|
||||
|
||||
/* 41 bytes is the longest error string */
|
||||
DEBUGASSERT(len > 41);
|
||||
if(!len || len < 41)
|
||||
if(!len)
|
||||
return NULL;
|
||||
|
||||
*buf = '\0';
|
||||
|
|
@ -763,8 +762,9 @@ get_winsock_error(int err, char *buf, size_t len)
|
|||
default:
|
||||
return NULL;
|
||||
}
|
||||
memcpy(buf, p, len - 1);
|
||||
buf[len - 1] = '\0';
|
||||
alen = strlen(p);
|
||||
if(alen < len)
|
||||
strcpy(buf, p);
|
||||
return buf;
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue