sockfilt.c: free memory in case of memory allocation errors

This commit is contained in:
Marc Hoersken 2014-04-20 18:22:28 +02:00
parent ee6791128f
commit eb01947e1d
1 changed files with 6 additions and 0 deletions

View File

@ -562,6 +562,7 @@ static int select_ws(int nfds, fd_set *readfds, fd_set *writefds,
/* allocate internal array for the internal event handles */
handles = malloc(nfds * sizeof(HANDLE));
if(handles == NULL) {
free(fdarr);
errno = ENOMEM;
return -1;
}
@ -569,6 +570,8 @@ static int select_ws(int nfds, fd_set *readfds, fd_set *writefds,
/* allocate internal array for the internal socket handles */
wsasocks = malloc(nfds * sizeof(curl_socket_t));
if(wsasocks == NULL) {
free(handles);
free(fdarr);
errno = ENOMEM;
return -1;
}
@ -576,6 +579,9 @@ static int select_ws(int nfds, fd_set *readfds, fd_set *writefds,
/* allocate internal array for the internal WINSOCK2 events */
wsaevents = malloc(nfds * sizeof(WSAEVENT));
if(wsaevents == NULL) {
free(wsasocks);
free(handles);
free(fdarr);
errno = ENOMEM;
return -1;
}