]> git.kaiwu.me - nginx.git/commitdiff
SPDY: the SETTINGS frame should be allocated from sc->pool.
authorValentin Bartenev <vbart@nginx.com>
Wed, 15 Jan 2014 13:16:38 +0000 (17:16 +0400)
committerValentin Bartenev <vbart@nginx.com>
Wed, 15 Jan 2014 13:16:38 +0000 (17:16 +0400)
There is no reason to allocate it from connection pool that more like just
a bug especially since ngx_http_spdy_settings_frame_handler() already uses
sc->pool to free a chain.

src/http/ngx_http_spdy.c

index 01b8e284ed3448f59bf10a3523ff0d0083146c45..46467ac4d2ad5a73c092111aec7d37657f930473 100644 (file)
@@ -1598,7 +1598,6 @@ ngx_http_spdy_send_settings(ngx_http_spdy_connection_t *sc)
 {
     u_char                     *p;
     ngx_buf_t                  *buf;
-    ngx_pool_t                 *pool;
     ngx_chain_t                *cl;
     ngx_http_spdy_srv_conf_t   *sscf;
     ngx_http_spdy_out_frame_t  *frame;
@@ -1606,21 +1605,19 @@ ngx_http_spdy_send_settings(ngx_http_spdy_connection_t *sc)
     ngx_log_debug0(NGX_LOG_DEBUG_HTTP, sc->connection->log, 0,
                    "spdy create SETTINGS frame");
 
-    pool = sc->connection->pool;
-
-    frame = ngx_palloc(pool, sizeof(ngx_http_spdy_out_frame_t));
+    frame = ngx_palloc(sc->pool, sizeof(ngx_http_spdy_out_frame_t));
     if (frame == NULL) {
         return NGX_ERROR;
     }
 
-    cl = ngx_alloc_chain_link(pool);
+    cl = ngx_alloc_chain_link(sc->pool);
     if (cl == NULL) {
         return NGX_ERROR;
     }
 
-    buf = ngx_create_temp_buf(pool, NGX_SPDY_FRAME_HEADER_SIZE
-                                    + NGX_SPDY_SETTINGS_NUM_SIZE
-                                    + NGX_SPDY_SETTINGS_PAIR_SIZE);
+    buf = ngx_create_temp_buf(sc->pool, NGX_SPDY_FRAME_HEADER_SIZE
+                                        + NGX_SPDY_SETTINGS_NUM_SIZE
+                                        + NGX_SPDY_SETTINGS_PAIR_SIZE);
     if (buf == NULL) {
         return NGX_ERROR;
     }