青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數(shù)據(jù)加載中……

nginx fastcgi模塊的一個bug

原創(chuàng)文章,轉(zhuǎn)載請注明: 轉(zhuǎn)載自pagefault

本文鏈接地址: nginx fastcgi模塊的一個bug

上周服務(wù)器更新到nginx0.8.X之后,nginx出現(xiàn)了core dump的情況,而在0.7.X并不會出現(xiàn),通過察看core dump文件以及nginx 0.8.x0.7.x的比較,發(fā)現(xiàn)core dumpnginx 0.8.40引入下面這個feature才導(dǎo)致的:

*) Feature: a “fastcgi_param” directive with value starting with
“HTTP_” overrides a client request header line.

nginx 0.8.40之后,如果你的fastcgi_param定義的變量以HTTP_開頭,則傳遞給后端的頭會忽略request header中的這個頭,比如定義了一個 fastcgi_param $HTTP_HOST test, 那么傳遞給后端時,host這個頭的值就是test.

這里的邏輯是這樣子的,當nginx創(chuàng)建一個fastcgi request的時候,會先計算所需要的長度,首先是計算header的長度,在計算之前會先分配一個ignored數(shù)組(用來保存將要被忽略的頭),它的大小是配置文件中fastcgi_param定義的以HTTP_開頭的變量的個數(shù). 然后遍歷所有的request header,如果發(fā)現(xiàn)header的名字和fastcgi_param中定義的變量的(HTTP_開頭)名字相同(使用hash),則將這個header指針放到ignored數(shù)組中,最后在拷貝request header的時候直接在這個數(shù)組里面查找,如果有則跳過,否則拷貝頭以及它的值。

看起來沒什么問題,可是這里忽略了request header有可能會有重復(fù)的這個情況,此時ignored數(shù)組可能就會越界,從而導(dǎo)致core dump.


來看對應(yīng)的代碼,引起問題的代碼是下面這段(ngx_http_fastcgi_create_request).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

//這里header_params就是fastcgi_param中定義的變量的(HTTP_開頭)個數(shù)

        if (flcf->header_params) {

//分配內(nèi)存

            ignored = ngx_palloc(r->pool, flcf->header_params * sizeof(void *));

            if (ignored == NULL) {

                return NGX_ERROR;

            }

        }

  

        part = &r->headers_in.headers.part;

        header = part->elts;

//開始遍歷

        for (i = 0; /* void */; i++) {

  

            if (i >= part->nelts) {

                if (part->next == NULL) {

                    break;

                }

  

                part = part->next;

                header = part->elts;

                i = 0;

            }

  

            if (flcf->header_params) {

         ..............................................................

//headers_hash就是fastcgi_param中定義的變量(HTTP_開頭)名字的hash

                if (ngx_hash_find(&flcf->headers_hash, hash, lowcase_key, n)) {

//可以看到只要找到相同的hash,則header_params就會加一.而如果重復(fù)的頭大于fastcgi_param中定義的變量的(HTTP_開頭)的個數(shù),則ignored肯定會越界.

                    ignored[header_params++] = &header[i];

                    continue;

                }

  

                n += sizeof("HTTP_") - 1;

  

            } else {

                n = sizeof("HTTP_") - 1 + header[i].key.len;

            }

舉個例子,配置文件里面包含下面的命令:
fastcgi_param HTTP_HOST $http_host;

然后客戶端傳過來的頭中如果包含多個host頭,則nginx就會core dump.

 

posted on 2011-06-21 10:57 肥仔 閱讀(447) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚欧美中日韩视频| 国产精品美女久久久浪潮软件| 亚洲精品国久久99热| 久久午夜精品一区二区| 亚洲国产一区二区三区a毛片| 1769国内精品视频在线播放| 午夜综合激情| 久久久久久亚洲精品中文字幕| 激情久久影院| 国产精品国码视频| 久久久久久久综合日本| 日韩亚洲欧美在线观看| 久久综合电影| 午夜精品短视频| 亚洲精品久久7777| 国产主播一区二区| 国产精品久久久久久久久久妞妞 | 一区二区免费在线播放| 国产精品稀缺呦系列在线| 免费成人av资源网| 亚洲综合成人在线| 亚洲免费观看视频| 亚洲国产精品成人精品 | 日韩一区二区免费看| 国产美女精品在线| 欧美日韩免费一区二区三区视频| 一本久道综合久久精品| 欧美成人中文| 欧美成人午夜免费视在线看片 | 韩国自拍一区| 国产精品推荐精品| 久久激情五月婷婷| 午夜国产精品视频| 亚洲视频在线观看| 99re热这里只有精品视频| 影音先锋久久久| 99在线精品观看| 亚洲福利久久| 欧美国产精品va在线观看| 久久人人97超碰精品888| 久久国产精品亚洲77777| 欧美一区二区视频网站| 在线看片成人| 久久久久青草大香线综合精品| 午夜视频在线观看一区二区三区 | 亚洲精品视频一区| 最近中文字幕mv在线一区二区三区四区| 久久综合色88| 免费亚洲电影| 欧美国产第二页| 亚洲黄一区二区三区| 亚洲精品在线二区| 一区二区三区久久网| 亚洲茄子视频| 一区二区激情| 午夜久久久久久| 久久久久一区| 欧美精品一区二区三区四区| 欧美日韩一区二区视频在线| 国产精品国色综合久久| 国产日韩欧美高清| 1024国产精品| 一区二区高清| 久久精品国产亚洲一区二区| 亚洲午夜91| 久久国产高清| 亚洲国产精品一区二区www在线 | 欧美激情一区二区在线| 欧美色另类天堂2015| 国产日韩精品入口| 亚洲国产一区二区a毛片| 99国内精品| 久久精品一二三区| 最新日韩精品| 欧美中文字幕在线播放| 欧美久久久久| 好看的日韩av电影| 一本色道**综合亚洲精品蜜桃冫 | 亚洲一区在线观看免费观看电影高清| 亚洲视频一区在线| 久久综合图片| 亚洲系列中文字幕| 欧美激情第六页| 国产亚洲a∨片在线观看| 99国产精品自拍| 91久久精品国产91久久性色| 亚洲欧美日韩系列| 欧美高清视频www夜色资源网| 久久久一区二区三区| 日韩午夜av电影| 久久人人爽爽爽人久久久| 国产精品高清在线观看| 91久久精品美女| 久久精品亚洲国产奇米99| 欧美性一区二区| 激情综合中文娱乐网| 一本色道久久88精品综合| 免费观看成人鲁鲁鲁鲁鲁视频 | 亚洲免费观看高清完整版在线观看熊 | 一区二区三区日韩欧美| 久久精品一区二区三区不卡| 亚洲精品一区久久久久久| 久久综合给合| 黑人极品videos精品欧美裸| 欧美一级免费视频| 在线亚洲一区| 欧美三区在线观看| 亚洲精品一区二区网址| 老司机一区二区三区| 性娇小13――14欧美| 国产精品日韩一区| 亚洲中字黄色| 久久成人精品| 午夜久久资源| 黄色成人在线观看| 玖玖玖免费嫩草在线影院一区| 亚洲欧美日本另类| 国产精品尤物| 欧美在线视频导航| 日韩视频在线一区二区| 欧美精品久久一区二区| aaa亚洲精品一二三区| 亚洲国产精品va在线观看黑人 | 久久精品人人爽| 欧美影院成人| 黄网站免费久久| 在线中文字幕日韩| 亚洲在线1234| 日韩视频一区二区三区在线播放免费观看 | 欧美成人午夜激情视频| 国产欧美日韩在线观看| 99re热这里只有精品视频| 亚洲第一在线视频| 久久精品人人做人人爽电影蜜月| 欧美一级久久久| 国产精品日日摸夜夜摸av| 99视频+国产日韩欧美| 99日韩精品| 欧美日韩另类丝袜其他| 亚洲精品国产系列| 亚洲日本中文字幕免费在线不卡| 久久综合精品国产一区二区三区| 久久午夜视频| 在线不卡亚洲| 免费短视频成人日韩| 欧美激情一区二区三区全黄| 亚洲高清二区| 美女主播精品视频一二三四| 欧美福利视频一区| 亚洲美女精品久久| 欧美性大战久久久久久久| 亚洲午夜女主播在线直播| 性欧美18~19sex高清播放| 国产精品影音先锋| 欧美一区二区私人影院日本| 久久免费视频网站| 亚洲成人资源网| 欧美激情在线免费观看| 99国产精品一区| 久久精品人人爽| 亚洲电影网站| 欧美日韩免费高清| 欧美一区二区三区免费视| 欧美大香线蕉线伊人久久国产精品| 亚洲肉体裸体xxxx137| 欧美日韩在线免费| 欧美亚洲专区| 91久久精品国产91久久| 亚洲欧美日韩直播| 一区视频在线| 欧美日一区二区三区在线观看国产免 | 亚洲精品免费观看| 国产精品久久久久久久久久直播| 欧美一级夜夜爽| 亚洲国产高清aⅴ视频| 亚洲欧美一区二区三区在线| 精品不卡一区| 欧美亚洲不卡| 久久综合给合| 亚洲一区二区三区久久| 欧美xxx成人| 午夜一区不卡| 亚洲精品久久久久中文字幕欢迎你 | 欧美在线首页| 亚洲日本欧美天堂| 国产亚洲女人久久久久毛片| 牛牛国产精品| 欧美一区二区三区另类 | 在线播放日韩欧美| 国产精品久久国产精麻豆99网站| 久久久不卡网国产精品一区| 日韩视频欧美视频| 美女露胸一区二区三区| 国产精品青草久久| 久久综合久久综合久久| 亚洲伊人网站| 日韩视频专区| 亚洲国产成人精品久久| 久久频这里精品99香蕉| 午夜欧美电影在线观看|