Commit 407583e8 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Moved the secondarysocket cleanup. The 'conn' struct may have been cleared

already at that other place.
parent 131645dc
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -1188,12 +1188,20 @@ CURLcode Curl_perform(struct SessionHandle *data)
           * may be free()ed in the Curl_done() function.
           */
          newurl = conn->newurl?strdup(conn->newurl):NULL;
        else
        else {
          /* The transfer phase returned error, we mark the connection to get
           * closed to prevent being re-used. This is becasue we can't
           * possibly know if the connection is in a good shape or not now. */
          conn->bits.close = TRUE;

          if(-1 !=conn->secondarysocket) {
            /* if we failed anywhere, we must clean up the secondary socket if
               it was used */
            sclose(conn->secondarysocket);
            conn->secondarysocket=-1;
          }
        }

        /* Always run Curl_done(), even if some of the previous calls
           failed, but return the previous (original) error code */
        res2 = Curl_done(conn);
@@ -1414,13 +1422,6 @@ CURLcode Curl_perform(struct SessionHandle *data)
  if(!res && res2)
    res = res2;

  if(conn && (-1 !=conn->secondarysocket)) {
    /* if we failed anywhere, we must clean up the secondary socket if it
       was used */
    sclose(conn->secondarysocket);
    conn->secondarysocket=-1;
  }

  return res;
}