欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C語言源碼二次釋放的危害是什么

今天給大家介紹一下C語言源碼二次釋放的危害是什么。文章的內(nèi)容小編覺得不錯(cuò),現(xiàn)在給大家分享一下,覺得有需要的朋友可以了解一下,希望對(duì)大家有所幫助,下面跟著小編的思路一起來閱讀吧。

在武清等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站建設(shè),武清網(wǎng)站建設(shè)費(fèi)用合理。

1、二次釋放

二次釋放簡單理解就是對(duì)同一個(gè)指針指向的內(nèi)存釋放了兩次,針對(duì)C語言源代碼,對(duì)同一個(gè)指針進(jìn)行兩次 free() 操作,可能導(dǎo)致二次釋放,本文3.1章節(jié)的缺陷代碼就是對(duì)這類情況的描述。在C++語言中,淺拷貝操作不當(dāng)是導(dǎo)致二次釋放常見原因之一。如:調(diào)用一次賦值運(yùn)算符或拷貝構(gòu)造函數(shù)將會(huì)導(dǎo)致兩個(gè)對(duì)象的數(shù)據(jù)成員指向相同的動(dòng)態(tài)內(nèi)存。此時(shí)引用計(jì)數(shù)機(jī)制變得非常重要,當(dāng)引用計(jì)數(shù)不當(dāng)時(shí),一個(gè)對(duì)象超出作用域時(shí),析構(gòu)函數(shù)將會(huì)釋放這兩個(gè)對(duì)象共享的內(nèi)存。另一個(gè)對(duì)象中對(duì)應(yīng)的數(shù)據(jù)成員將會(huì)指向已經(jīng)釋放的內(nèi)存地址,而當(dāng)這個(gè)對(duì)象也超出作用域時(shí),它的析構(gòu)函數(shù)試圖再次釋放這塊內(nèi)存,導(dǎo)致二次釋放問題。詳細(xì)請(qǐng)參見CWE ID 415: Double Free。

2、 二次釋放的危害

二次釋放內(nèi)存可能導(dǎo)致應(yīng)用程序崩潰、拒絕服務(wù)攻擊等問題,是 C/C++ 中常見的漏洞之一。2018年1月至11月,CVE中共有38條漏洞信息與其相關(guān)。部分漏洞如下:

CVE 編號(hào)概述
CVE-2018-18751GNU gettext 0.19.8 版本中的 read-catalog.c 文件的 ‘defaultaddmessage’ 函數(shù)存在二次釋放漏洞。
CVE-2018-17097Olli Parviainen SoundTouch 2.0 版本中的 WavFile.cpp 文件的 WavFileBase 類存在安全漏洞,遠(yuǎn)程攻擊者可利用該漏洞造成拒絕服務(wù)(二次釋放)。
CVE-2018-16425OpenSC 0.19.0-rc1 之前版本中的 libopensc/pkcs15-sc-hsm.c 文件的 ‘scpkcs15emuschsminit’ 函數(shù)存在二次釋放漏洞。攻擊者可借助特制的智能卡利用該漏洞造成拒絕服務(wù)(應(yīng)用程序崩潰)。
CVE-2018-16402elfutils 0.173 版本中的 libelf/elf_end.c 文件存在安全問題,遠(yuǎn)程攻擊者可利用該漏洞造成拒絕服務(wù)(二次釋放和應(yīng)用程序崩潰)。

3、示例代碼

示例源于Samate Juliet Test Suite for C/C++ v1.3 (https://samate.nist.gov/SARD/testsuite.php),源文件名:CWE415_Double_Free__malloc_free_char_17.c。

3.1缺陷代碼


C語言源碼二次釋放的危害是什么

在上述示例代碼中,在第32行使用  malloc() 進(jìn)行內(nèi)存分配,并在第36行使用 free() 對(duì)分配的內(nèi)存進(jìn)行了釋放,在第38行 for 循環(huán)語句中,又對(duì)已經(jīng)釋放的內(nèi)存 data 進(jìn)行了一次釋放,導(dǎo)致二次釋放問題。

使用360代碼衛(wèi)士對(duì)上述示例代碼進(jìn)行檢測,可以檢出“二次釋放”缺陷,顯示等級(jí)為中。如圖1所示:

C語言源碼二次釋放的危害是什么

圖1:二次釋放檢測示例

3.2 修復(fù)代碼


C語言源碼二次釋放的危害是什么

在上述修復(fù)代碼中,Samate 給出的修復(fù)方式為: 在第32行使用 malloc() 進(jìn)行內(nèi)存分配,并在第36行處使用 free() 進(jìn)行釋放,釋放后不在對(duì)該內(nèi)存進(jìn)行釋放操作。

使用360代碼衛(wèi)士對(duì)修復(fù)后的代碼進(jìn)行檢測,可以看到已不存在“二次釋放”缺陷。如圖2:


C語言源碼二次釋放的危害是什么

圖2:修復(fù)后檢測結(jié)果

4 、如何避免二次釋放

要避免二次釋放,需要注意以下幾點(diǎn):

(1)野指針是導(dǎo)致二次釋放和釋放后使用的重要原因之一,消除野指針的有效方式是在釋放指針之后立即把它設(shè)置為 NULL 或者設(shè)置為指向另一個(gè)合法的對(duì)象。

(2)針對(duì) C++ 淺拷貝導(dǎo)致的二次釋放問題,始終執(zhí)行深拷貝是不錯(cuò)的解決方案。

(3)使用源代碼靜態(tài)分析工具,可以自動(dòng)化的發(fā)現(xiàn)程序中可能存在的二次釋放問題。

以上就是C語言源碼二次釋放的危害是什么的全部內(nèi)容了,更多與C語言源碼二次釋放的危害是什么相關(guān)的內(nèi)容可以搜索創(chuàng)新互聯(lián)之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會(huì)給大家增添更多知識(shí),希望大家能夠支持一下創(chuàng)新互聯(lián)!

網(wǎng)站欄目:C語言源碼二次釋放的危害是什么
分享路徑:http://www.aaarwkj.com/article38/gjodpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)營銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、網(wǎng)站改版網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
特别黄的日本免费视频| 中文字幕免费日本在线| 一区二区三区欧美日韩在线| 婷婷激情亚洲综合综合久久| av免费观看日韩永久| 欧美日韩精品一区二区视频永久免| 久久精品国产亚洲av高清观看| 性生活免费在线观看视频| 青青草原在线视频一区| 久久偷拍一区二区三区| 尤物天堂av一区二区| 国产视频一区2区三区| 久久精品国产91麻豆| 一级黄片一区二区三区| 18禁在线免费观看网站| 六月综合激情丁香婷婷色| 99久久夜国产精品| 国产自产一区二区三区精品| 大香蕉欧美视频伊在线| 婷婷国产成人久久精品激情| 国产免费成人在线视频| 亚洲av乱码毛片在线播放| 一区二区在线日韩欧美| 国产精品国产三级国av麻豆| 深夜十八禁在线免费观看| 18禁黄网站禁片免费视频| 九九热最新视频免费看| 五月天久久开心激情网| 在线观看高清免费国产| 人人妻人人澡人人爽人人精品| 亚洲区一区二区三区亚洲| 夜夜爽精品国产亚洲av成人| 麻豆久久精品国产亚洲精品超碰热 | 俩小伙探花专约老熟女| 日本av东京热在线播放| 国产黄色看三级91大片| 蜜臀人妻久久一区二区三| 亚洲天堂av成人在线观看| 色婷婷亚洲婷婷亚洲最大| 99精品人妻一区二区三区蜜桃| 91精品超碰人人在线公开|