Explorar o código

Corrected dangerous assert() in process_new_connection

Sergey Lyubka %!s(int64=13) %!d(string=hai) anos
pai
achega
102101e9d6
Modificáronse 1 ficheiros con 1 adicións e 1 borrados
  1. 1 1
      mongoose.c

+ 1 - 1
mongoose.c

@@ -4042,7 +4042,7 @@ static void process_new_connection(struct mg_connection *conn) {
     reset_per_request_attributes(conn);
     reset_per_request_attributes(conn);
     conn->request_len = read_request(NULL, conn, conn->buf, conn->buf_size,
     conn->request_len = read_request(NULL, conn, conn->buf, conn->buf_size,
                                      &conn->data_len);
                                      &conn->data_len);
-    assert(conn->data_len >= conn->request_len);
+    assert(conn->request_len < 0 || conn->data_len >= conn->request_len);
     if (conn->request_len == 0 && conn->data_len == conn->buf_size) {
     if (conn->request_len == 0 && conn->data_len == conn->buf_size) {
       send_http_error(conn, 413, "Request Too Large", "");
       send_http_error(conn, 413, "Request Too Large", "");
       return;
       return;