C語言安全編碼之數(shù)組索引位的合法范圍
更新時間:2014年07月07日 12:12:24 投稿:shichen2014
這篇文章主要介紹了C語言安全編碼的數(shù)組索引位合法范圍剖析,對于編碼安全非常重要!需要的朋友可以參考下
C語言中的數(shù)組索引必須保證位于合法的范圍內(nèi)!
示例代碼如下:
enum {TABLESIZE = 100};
int *table = NULL;
int insert_in_table(int pos, int value) {
if(!table) {
table = (int *)malloc(sizeof(int) *TABLESIZE);
}
if(pos >= TABLESIZE) {
return -1;
}
table[pos] = value;
return 0;
}
其中:pos為int類型,可能為負數(shù),這會導(dǎo)致在數(shù)組所引用的內(nèi)存邊界之外進行寫入
解決方案如下:
enum {TABLESIZE = 100};
int *table = NULL;
int insert_in_table(size_t pos, int value) {
if(!table) {
table = (int *)malloc(sizeof(int) *TABLESIZE);
}
if(pos >= TABLESIZE) {
return -1;
}
table[pos] = value;
return 0;
}
相關(guān)文章
C++實現(xiàn)LeetCode(166.分數(shù)轉(zhuǎn)循環(huán)小數(shù))
這篇文章主要介紹了C++實現(xiàn)LeetCode(166.分數(shù)轉(zhuǎn)循環(huán)小數(shù))2021-07-07
C++函數(shù)參數(shù)匹配規(guī)則示例小結(jié)
這篇文章主要介紹了C++函數(shù)參數(shù)匹配規(guī)則,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
C++成員函數(shù)如何當作回調(diào)函數(shù)同時傳遞this指針
這篇文章主要介紹了C++成員函數(shù)如何當作回調(diào)函數(shù)同時傳遞this指針,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
淺談C++內(nèi)存分配及變長數(shù)組的動態(tài)分配
下面小編就為大家?guī)硪黄獪\談C++內(nèi)存分配及變長數(shù)組的動態(tài)分配。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09

