日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

malloc为什么会报错:memory corruption

發布時間:2023/11/27 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 malloc为什么会报错:memory corruption 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近遇到一個問題,很有意思,在此記錄下,以備后續參考。

程序運行異常,報錯:malloc: memory corruption.

用gdb?調試程序,bt?如下,程序在申請344 bytes內存時失敗。

疑問:344bytes內存并不大,為何會失敗呢?

進一步,打開AddressSanitizer,重選編譯并運行程序,AddressSanitizer報錯如下,報錯內容分3部分貼出如下(信息安全,隱藏掉部分堆棧信息):

1.?重點:紅色字體:heap-buffer-overflow on address 0xf3805ef0, 藍色字體, WRITE?of size 4 at 0xf3805ef0

解釋:堆溢出,在*.c的211行對0xf3805ef0地址非法寫,嘗試寫4個byte.

2.綠色字體:0xf3805ef0 is located 192 byte to the right of 688-byte regin?[0xf3805b80,0xf3805e30)

?在*.c的507行分配了688個byte -?對應內存區域[0xf3805b80,0xf3805e30),?程序非法訪問的地址0xf3805ef0 位于此內存區域右側的192個byte的位置。

3. Summary.

分析過程不必贅述,我把結論寫一下:

1.? 在*.c的507行分配了688個byte -?對應內存區域[0xf3805b80,0xf3805e30)

? ? 分析code,?發現這里是分配了2個結構體struct M,sizeof(struct M) = 344.? ??

typedef struct M
{...int data;...
} M_t

2.? 在*.c的211行對0xf3805ef0地址非法寫,嘗試寫4個byte.

? ?查看code,在211行嘗試寫一個struct M的成員data, 而data成員之前結構體成員的長度為192.

?

注意cellGroupId的offset 和 size.

?

回味下面ASAN的提示:

0xf3805ef0 is located 192 byte to the right of 688-byte regin?[0xf3805b80,0xf3805e30)

由此可以推測:程序動態分配了2個struct M,?由于code?存在bug,?卻訪問了第三個struct M.?

最后進一步debug,發現程序確實是指針操作出錯,訪問了2個struct M后面的內存。

思考:malloc失敗 與 AddressSanitizer: heap-buffer-overflow

沒有開啟AddressSanitizer時,程序寫struct M的成員data時并沒有直接報錯,而是延遲到再次malloc內存時報錯?

個人認為如下:

1.?程序非法寫struct M的成員data,0xf3805ef0 ?地址位于堆上,此地址是可寫的。(如果是訪問.text代碼段地址的話,程序是會馬上終止的。)

2. malloc時,我推測內存管理模塊會check將要分配出的內存區域是否正常。?怎么檢查:比如,沒有分配出的內存區域設置為默認值或者魔數,如果發現有其它的非法值存在,就發生了非法寫,也就是說此內存還沒有被分配出去,就已經有code?對其做了寫操作。

根據之前內存池管理(https://blog.csdn.net/wowricky/article/details/83218126)的經驗,?內存管理模塊會在malloc和free時對內存區域進行檢查,如果存在異常會直接報錯memory corruption。所以malloc時的內存報錯,通常是由于之前的內存越界訪問導致的,這種問題通常比較難以定位。我碰到的這個問題比較幸運,非法訪問地址0xf3805ef0 ?是前一個動態內存區域[0xf3805b80,0xf3805e30)?操作不當導致的。

??

總結

以上是生活随笔為你收集整理的malloc为什么会报错:memory corruption的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天插插| 久久久久亚洲av无码网站 | 久久精品国产大片免费观看 | 深夜影院在线观看 | 户外露出一区二区三区 | 日本特级淫片 | 色偷偷人人澡人人爽人人模 | 丰满少妇xoxoxo视频 | 麻豆伦理片 | 天天操操夜夜操操 | 亚洲日本成人在线观看 | 麻豆成人91精品二区三区 | 自拍视频在线观看 | 免费美女毛片 | 91成人综合 | 贵族女沦为官妓h呻吟 | 毛片www | 国产乡下妇女做爰视频 | 秋霞午夜伦理 | 亚洲a级在线观看 | 亚洲综合网址 | 性――交――性――乱 | 青青插| 国产黑丝91 | av中文字幕在线免费观看 | 祥仔视觉av| 日本寂寞少妇 | 天天天色综合 | 亚洲欧美日韩精品一区 | www.欧美日韩| 天堂网在线最新版www中文网 | 国产做爰xxxⅹ高潮视频12p | 亚洲精品蜜桃 | 免费激情网址 | jizz91| 97在线观看视频免费 | 农村妇女愉情三级 | 人妖av在线 | 欧美三级又粗又硬 | 极品久久久久久 | jiz亚洲 | 国产夜夜爽| 国产精品国产三级国产aⅴ中文 | 婷婷五月花| 男人日女人在线观看 | 欧美日韩国产黄色 | 国产短视频一区 | 亚洲欧美激情在线观看 | 日本黄网在线观看 | 久久久久久久国产精品视频 | 美女色黄网站 | 免费级毛片 | 欧美一级艳片视频免费观看 | 中文字幕免费中文 | 日韩一区不卡 | 国产在线国偷精品免费看 | 欧美特级黄 | 久久免费视频精品 | 丁香婷婷色 | www.污网站 | 亚洲视频自拍偷拍 | 国产亚洲电影 | 91羞羞网站 | 色女综合 | 欧美福利视频导航 | 少妇一级淫片免费放 | 国产激情视频一区 | 午夜精品久久久久久久久久久久久蜜桃 | 黄色小视频在线免费观看 | 天天操夜夜添 | 国产在线免费观看 | 黄色的网站在线观看 | 久草福利资源站 | 高清乱码免费看污 | 成人aaa视频| 五月亚洲婷婷 | 象人高潮调教丨vk | 黄色大网站 | 日韩亚洲在线 | 99蜜桃臀久久久欧美精品网站 | 蜜臀久久99静品久久久久久 | 四色在线 | 青草热视频 | 亚洲午夜天堂 | 精品国产系列 | 国产精品一区二区亚洲 | 小视频在线播放 | 另类激情综合 | 日本xxxwww| 调教奶奴 | 久久丁香 | 亚洲玖玖爱| 一级片一区 | 青青草视频成人 | jizz黑人 | 黑料视频在线观看 | 一级片免费在线播放 | 在线成人| 精品久久久久久久久久久久久久久久久 |