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

woaidongmao

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

nginx fastcgi模塊的一個bug

原創文章,轉載請注明: 轉載自pagefault

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

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

*) 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創建一個fastcgi request的時候,會先計算所需要的長度,首先是計算header的長度,在計算之前會先分配一個ignored數組(用來保存將要被忽略的頭),它的大小是配置文件中fastcgi_param定義的以HTTP_開頭的變量的個數. 然后遍歷所有的request header,如果發現header的名字和fastcgi_param中定義的變量的(HTTP_開頭)名字相同(使用hash),則將這個header指針放到ignored數組中,最后在拷貝request header的時候直接在這個數組里面查找,如果有則跳過,否則拷貝頭以及它的值。

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


來看對應的代碼,引起問題的代碼是下面這段(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_開頭)個數

        if (flcf->header_params) {

//分配內存

            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就會加一.而如果重復的頭大于fastcgi_param中定義的變量的(HTTP_開頭)的個數,則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 肥仔 閱讀(449) 評論(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>
            国产精品黄视频| 亚洲欧洲午夜| 伊人天天综合| 久久女同精品一区二区| 欧美成人高清| 亚洲精品黄网在线观看| 欧美看片网站| 亚洲综合成人婷婷小说| 久久福利影视| 亚洲国产一二三| 欧美午夜a级限制福利片| 亚洲永久免费观看| 狂野欧美激情性xxxx| 亚洲精选在线| 国产模特精品视频久久久久| 久久久久久久综合日本| 亚洲欧洲综合另类| 欧美一区二区三区四区高清| 伊人精品在线| 欧美亚一区二区| 久久精品国产一区二区三| 亚洲国产精品热久久| 亚洲欧美在线一区二区| 原创国产精品91| 欧美色视频日本高清在线观看| 亚洲欧美日韩国产另类专区| 欧美高清在线视频| 欧美一区二区三区精品电影| 亚洲国产成人tv| 国产精品色网| 欧美成人精品影院| 欧美一区二区| 日韩视频在线永久播放| 久久蜜桃精品| 亚洲综合日韩在线| 亚洲人成在线免费观看| 国产欧美日韩亚洲精品| 欧美激情中文字幕一区二区 | 亚洲毛片av| 裸体歌舞表演一区二区| 亚洲一区视频在线观看视频| 亚洲第一天堂av| 国产欧美精品在线播放| 欧美巨乳在线| 麻豆成人综合网| 欧美主播一区二区三区| 一本色道久久88精品综合| 欧美激情精品久久久久久久变态 | 亚洲影音先锋| 亚洲免费观看| 亚洲国产精品一区| 久久午夜电影网| 欧美一区在线视频| 亚洲男人的天堂在线aⅴ视频| 亚洲国产一区二区在线| 一区二区视频免费完整版观看| 国产精品国产精品| 欧美日韩一区二区三区四区在线观看 | 午夜精品视频在线观看一区二区| 亚洲精品久久嫩草网站秘色| 永久免费视频成人| 国产综合久久久久影院| 国产目拍亚洲精品99久久精品 | 国产精品美女久久| 欧美色图天堂网| 欧美日韩国产影片| 欧美人牲a欧美精品| 欧美精品国产精品| 男人插女人欧美| 欧美mv日韩mv国产网站| 久热这里只精品99re8久| 久久久久亚洲综合| 久久久久久久欧美精品| 久久电影一区| 久久久久久综合网天天| 快she精品国产999| 欧美成人国产| 欧美日韩国产首页在线观看| 欧美日韩国产综合视频在线| 欧美日韩另类一区| 欧美视频一区二区三区在线观看| 欧美日韩亚洲成人| 欧美色网一区二区| 国产精品亚洲综合天堂夜夜| 国产美女精品人人做人人爽| 国产视频欧美视频| 在线看视频不卡| 亚洲精品欧美在线| 日韩视频免费在线观看| 中文一区在线| 羞羞视频在线观看欧美| 久久国产黑丝| 欧美高清不卡| 9久草视频在线视频精品| 制服丝袜激情欧洲亚洲| 欧美一区二区日韩| 免费观看日韩| 欧美天天在线| 国产在线乱码一区二区三区| 在线观看视频欧美| 一二三区精品| 久久精品首页| 亚洲福利视频一区二区| 日韩一级精品视频在线观看| 亚洲欧美资源在线| 可以看av的网站久久看| 欧美午夜精品久久久久久超碰| 国产女人水真多18毛片18精品视频| 国内不卡一区二区三区| 日韩图片一区| 久久精品水蜜桃av综合天堂| 亚洲福利视频免费观看| 亚洲欧美视频在线观看| 免费精品视频| 国产精品综合久久久| 亚洲国产日韩在线一区模特| 亚洲中字在线| 欧美高清视频在线观看| 亚洲在线黄色| 欧美承认网站| 国产一二精品视频| 亚洲另类自拍| 久久这里只有| 亚洲视频一区在线观看| 美女91精品| 国产亚洲精品7777| 亚洲精品在线免费观看视频| 久久精品免费电影| 日韩一本二本av| 久久夜色精品| 国产日韩三区| 亚洲专区国产精品| 亚洲人成绝费网站色www| 久久国产天堂福利天堂| 欧美日韩一区在线播放| 91久久夜色精品国产网站| 久久精品一二三| 在线中文字幕不卡| 欧美精品在线视频观看| 伊人婷婷欧美激情| 久久久蜜桃精品| 亚洲一区三区在线观看| 欧美日韩理论| 一本色道久久精品| 欧美国产日本高清在线| 久久久精品性| 国产一区二区三区高清在线观看| 亚洲一区国产一区| 日韩网站在线观看| 欧美精品九九99久久| 亚洲国产一区二区三区在线播| 久久夜色精品国产| 欧美中文字幕在线| 国内外成人免费激情在线视频 | 午夜精品美女久久久久av福利| 欧美午夜电影在线| 亚洲视频欧美在线| 亚洲老司机av| 欧美日韩免费一区| 在线亚洲自拍| 在线一区二区视频| 国产精品久久久久久久7电影 | 亚洲电影免费观看高清完整版在线| 欧美一区二区三区免费视| 国产精品一区二区黑丝| 亚洲欧美在线磁力| 亚洲自拍三区| 国产女主播一区二区三区| 欧美一区二区大片| 午夜精品偷拍| 揄拍成人国产精品视频| 欧美成人精品一区| 欧美a级在线| 99在线视频精品| 在线视频亚洲一区| 国产精品一区久久久| 久久精品一区中文字幕| 久久九九精品| 亚洲欧洲美洲综合色网| 亚洲精品在线免费观看视频| 欧美三级特黄| 欧美在线啊v一区| 久久精品中文| 亚洲精品影院在线观看| 一区二区日韩伦理片| 国产精品一区二区三区四区五区 | 久久精品在线| 女人色偷偷aa久久天堂| 一区二区精品国产| 亚洲欧美一区二区三区久久| 国产视频久久久久| 亚洲福利国产| 国产模特精品视频久久久久 | 欧美亚洲成人网| 久久久久久一区二区三区| 蜜桃久久av一区| 亚洲自拍都市欧美小说| 久久久久久久久久久一区 | 亚洲欧美日韩国产精品| 亚洲国产成人在线|