Commit eb01947e authored by Marc Hoersken's avatar Marc Hoersken
Browse files

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

parent ee679112
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;
  }