2020-06-18 17:18:53
調試環境:windows10 + Visual Studi 2013 C語言
在Release模式下調試Debug模式下無誤的一個程序時,反復遇到堆棧 Cookie 檢測代碼檢測到基於堆棧的緩沖區溢出問題,在網上查一下資料表示都是數組越界的問題,叫本人詳細查詢數組大小的操作,經過反復的查找並未發現直接的數組越界問題,但是將問題定位在了一個輸入為數組的函數之內,該函數return執行后即提示緩沖區溢出如下:
隨后又查了一下__fastfail(FAST_FAIL_STACK_COOKIE_CHECK_FAILURE)的相關問題,將所有的相關數組都檢查了賦初值操作后也無果;靈機一動想到,是不是因為對輸入的數組直接進行了操作導致無法釋放輸入數組,函數內重建一個新的數組賦值輸入數組的內容再操作新的數組果然不再報錯了。