Commit 4ec9eeb0 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa Committed by Jay Satiro
Browse files

http2: Check session closure early in http2_recv

parent 92c2a4c0
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -1150,6 +1150,14 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,

  (void)sockindex; /* we always do HTTP2 on sockindex 0 */

  if(!nghttp2_session_want_read(httpc->h2) &&
     !nghttp2_session_want_write(httpc->h2)) {
    DEBUGF(infof(data,
                 "http2_recv: nothing to do in this session\n"));
    *err = CURLE_HTTP2;
    return -1;
  }

  /* Nullify here because we call nghttp2_session_send() and they
     might refer to the old buffer. */
  stream->upload_mem = NULL;
@@ -1231,13 +1239,6 @@ static ssize_t http2_recv(struct connectdata *conn, int sockindex,
    *err = CURLE_AGAIN;
    return -1;
  }
  else if(!nghttp2_session_want_read(httpc->h2) &&
          !nghttp2_session_want_write(httpc->h2)) {
    DEBUGF(infof(data,
                 "http2_recv: nothing to do in this session\n"));
    *err = CURLE_HTTP2;
    return -1;
  }
  else {
    char *inbuf;
    /* remember where to store incoming data for this stream and how big the