• <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>

            旅途

            如果想飛得高,就該把地平線忘掉

            [轉載]C語言防止緩沖區溢出方法

            C語言使用直接的內存訪問,緩沖區溢出是經常出現的安全問題。
            下面將介紹常見的緩沖區溢出,及防止方法。

            1、判斷邊界
            例程序:
            void outstr(int a[10])
            {
                    for(i=0;a[i]!=0&&i<10;i++)
                    {
                            printf("%d\n",a[i]);
                    }
            }
            當i=10時,判斷i<10同時需要判斷a[i]!=0,
            此時a[10]已經訪問到非法區域,可能引起緩沖區溢出問題。

            防止方法:將判斷條件分成幾條語句
            例:
            if(i<10){
                    if(a[i]!=0){
                            ...
                    }
            }

            2、字符串操作
            C語言的字符串庫沒有安全保護,在使用時要特別小心。
            strcpy、strcat等函數操作時沒有檢查緩沖區大小,容易引起安全問題。
            防止方法:
            1)使用strncpy、strncat,限制拷貝字符串長度。
            2)或者是在strcpy、strcat之前檢查緩沖區大小是否滿足要求。

            3、free
            free后指針不是NULL。所以判斷指針是否為NULL并不能保證指針有效。
            防止方法:在free后重置指針。
            free(p);p=NULL;

            4、指針未初始化
            指針未初始化便引用。指針初始值未知,無法根據值判定指針是否有效。
            指針聲明后盡快初始化,如不能初始化為有效值,也要初始化為NULL。
            防止方法:每次使用指針,不能確定指針有效時,先判斷指針是否為NULL。
             


            posted on 2007-07-22 02:16 旅途 閱讀(627) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            久久国产精品-国产精品| 无码人妻久久久一区二区三区| 久久久久久精品久久久久| 无码8090精品久久一区 | 久久久久99精品成人片试看 | 久久99国内精品自在现线| 久久精品亚洲乱码伦伦中文| 久久亚洲精品国产亚洲老地址| 国内精品久久久久久久97牛牛| 久久99精品国产99久久6男男| 久久亚洲精品无码播放| 久久精品国产亚洲网站| 亚洲国产精品无码久久久久久曰 | 久久综合久久综合久久综合| 一级做a爰片久久毛片毛片| 久久久久无码精品国产| 亚洲国产成人精品女人久久久 | 日韩欧美亚洲综合久久影院d3| 蜜桃麻豆WWW久久囤产精品| 久久精品国产只有精品66| 亚洲精品乱码久久久久66| 久久综合一区二区无码| 久久成人国产精品二三区| 亚洲色欲久久久综合网东京热| 精品无码久久久久久久久久| 久久91综合国产91久久精品| 久久久亚洲AV波多野结衣| 亚洲综合久久夜AV | 欧美大战日韩91综合一区婷婷久久青草 | 91精品婷婷国产综合久久| A级毛片无码久久精品免费| 精品一区二区久久| 精品久久久久香蕉网| 77777亚洲午夜久久多喷| 99精品久久久久久久婷婷| 国产精品成人久久久| 国产精品久久婷婷六月丁香| 97精品依人久久久大香线蕉97 | 久久久久久A亚洲欧洲AV冫| 2020国产成人久久精品| 欧美一级久久久久久久大|