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

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(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.

這里的邏輯是這樣子的,當(dāng)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>
            黄色成人av网站| 欧美在线视频一区二区| 亚洲一区国产视频| 夜夜夜精品看看| 中文精品视频一区二区在线观看| 在线观看的日韩av| 亚洲国产精品激情在线观看| 亚洲高清免费在线| 99视频在线观看一区三区| 99国产一区| 亚洲女性裸体视频| 欧美在线网站| 欧美激情91| 中文日韩欧美| 欧美专区日韩视频| 欧美国产精品劲爆| 国产精品成人一区二区网站软件| 国产精品色网| 在线视频成人| 亚洲一区中文字幕在线观看| 久久精品国产亚洲aⅴ| 欧美成人精品不卡视频在线观看 | 欧美另类视频在线| 国产精品av免费在线观看 | 亚洲视频碰碰| 久久免费偷拍视频| 亚洲美洲欧洲综合国产一区| 先锋资源久久| 欧美日本在线视频| 国产伪娘ts一区| 日韩亚洲欧美成人一区| 欧美中文在线观看| 亚洲毛片在线看| 久久精品一区二区| 欧美吻胸吃奶大尺度电影| 极品日韩久久| 亚洲一区在线观看视频| 久久一二三区| 一区二区三区精品| 久久综合国产精品台湾中文娱乐网| 欧美日韩一区二区欧美激情 | 欧美激情一二区| 国产综合第一页| 亚洲伊人网站| 亚洲国产高清一区二区三区| 亚洲欧美国产高清| 欧美日韩视频在线| 亚洲国产一二三| 久热爱精品视频线路一| 亚洲主播在线观看| 欧美三级乱码| 日韩午夜精品视频| 欧美激情一区二区三区高清视频| 久久精品国产在热久久| 国产欧美1区2区3区| 亚洲欧美成人综合| 一区二区三区精品久久久| 欧美日韩中文字幕精品| 日韩视频一区二区三区在线播放| 欧美v日韩v国产v| 久久国产精品一区二区| 国产亚洲综合精品| 久久久久久69| 久久精品最新地址| 伊人成年综合电影网| 久久伊伊香蕉| 美女视频黄 久久| 91久久精品一区二区别| 亚洲黄色成人网| 欧美精品亚洲一区二区在线播放| 亚洲激情成人| 亚洲日韩成人| 欧美亚男人的天堂| 久久精品国产清自在天天线| 欧美在线国产精品| 亚洲高清免费视频| 日韩五码在线| 国产欧美日韩一区二区三区| 久久天天躁狠狠躁夜夜爽蜜月| 久久久久国产成人精品亚洲午夜| 在线日本高清免费不卡| 亚洲欧洲在线播放| 国产精品免费看片| 久久看片网站| 欧美精品在线免费播放| 亚洲资源在线观看| 欧美在线三区| 99国产精品| 亚洲专区在线| 亚洲国产精品精华液2区45| 亚洲靠逼com| 国产区日韩欧美| 亚洲第一毛片| 国产精品老牛| 亚洲东热激情| 日韩午夜激情电影| 亚洲国产一区二区三区a毛片| 欧美精品色综合| 久久精品99无色码中文字幕 | 老色鬼久久亚洲一区二区| 母乳一区在线观看| 午夜精品视频在线观看| 玖玖玖免费嫩草在线影院一区| 中文亚洲字幕| 久久女同互慰一区二区三区| 亚洲先锋成人| 蜜臀av国产精品久久久久| 亚洲欧美日韩一区二区三区在线| 久热精品视频在线观看| 亚洲欧美日韩爽爽影院| 免费在线视频一区| 久久成人久久爱| 欧美日韩不卡| 欧美成人综合| 好吊色欧美一区二区三区视频| 一区二区成人精品| 亚洲国产午夜| 久久久人人人| 欧美中文日韩| 国产精品超碰97尤物18| 91久久视频| 亚洲欧洲在线播放| 久久久久成人精品| 久久精品国产77777蜜臀 | 国产精品一区二区在线观看网站| 欧美激情一二区| 在线观看亚洲精品| 久久精品国产精品| 久久久久www| 国产揄拍国内精品对白| 亚洲一区二区在线| 亚洲欧美国产精品专区久久| 欧美日韩国产亚洲一区| 亚洲国产99| 亚洲电影第1页| 久久久久久高潮国产精品视| 久久精品国产免费看久久精品| 国产精品女主播一区二区三区| 亚洲视频1区| 亚洲一区www| 国产精品免费看片| 性色av一区二区三区红粉影视| 欧美影院成年免费版| 国产日韩一级二级三级| 午夜一级久久| 免费高清在线一区| 亚洲经典三级| 欧美日韩系列| 亚洲欧美日韩国产精品| 久久久www| 亚洲国产午夜| 欧美日韩色婷婷| 亚洲欧美日韩久久精品| 久久精品盗摄| 亚洲国产清纯| 欧美日韩亚洲综合一区| 亚洲欧美一区二区在线观看| 久久久久综合| 99re6热在线精品视频播放速度| 欧美人与性动交cc0o| 欧美一区在线看| 国产亚洲电影| 篠田优中文在线播放第一区| 久久久亚洲午夜电影| 亚洲黄色影院| 欧美日韩精品免费观看| 亚洲自拍偷拍网址| 欧美成人精品高清在线播放| 亚洲午夜在线观看视频在线| 国产精品美女久久久久aⅴ国产馆| 午夜欧美不卡精品aaaaa| 免费一区二区三区| 99视频在线精品国自产拍免费观看| 国产精品三区www17con| 蜜桃av久久久亚洲精品| 一区二区三区免费看| 久久婷婷成人综合色| 日韩午夜电影av| 国产欧美一区二区精品婷婷| 久久欧美肥婆一二区| 亚洲香蕉伊综合在人在线视看| 久久亚洲免费| 亚洲免费在线视频| 亚洲黄色免费电影| 国产精品一区二区三区四区五区| 久久精品在线播放| 亚洲综合日韩| 亚洲激情电影在线| 噜噜噜91成人网| 午夜伦欧美伦电影理论片| 亚洲精品国产精品国自产在线| 国产亚洲激情| 国产精品久久国产三级国电话系列| 久久综合久久久久88| 亚洲欧美日韩在线| 亚洲精品乱码视频| 免费亚洲电影在线| 久久久不卡网国产精品一区| 亚洲一区999| 一区二区三区www|