[問題] strcpy memcpy strncpy 風險問題
網路上介紹 strcpy strcmp 這些相關function有些風險,就是可能會造成 memory
越界問題。所以使用 strncpy strncmp 這些來替代。
原因是strcmp(a,b),b若沒有空字元結尾,他會一直比下去,會有存取到未知memory
風險。所以用strncmp代替。
現在我開發nRF5 BLE 相關系列。BLE底層callback回來有 uint8_t *p_data 和長度。
我從APP傳過去是一個 device name,callback接收到後只會是hex byte由 p_data指向
請問你們把它存成字串會是怎樣的安全作法?
1 在BLE內先宣告長度20的陣列。array[0]= p_data
array[1]= p_data+1
..
array[18] = p_data+18
array[19] = '\0'
2 memcpy(array, p_data, sizeof(array));
第二種我不確定安不安全。假設p_data沒有到20那麼長,不就也會把p_data指向的
memory越界了嗎?
請多多指教QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.140.98 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1600480402.A.20A.html
推
09/19 10:59,
3年前
, 1F
09/19 10:59, 1F
→
09/19 10:59,
3年前
, 2F
09/19 10:59, 2F
→
09/19 11:20,
3年前
, 3F
09/19 11:20, 3F
→
09/19 11:20,
3年前
, 4F
09/19 11:20, 4F
推
09/19 12:37,
3年前
, 5F
09/19 12:37, 5F
→
09/19 12:37,
3年前
, 6F
09/19 12:37, 6F
推
09/19 18:29,
3年前
, 7F
09/19 18:29, 7F
→
09/19 18:29,
3年前
, 8F
09/19 18:29, 8F
→
09/19 18:29,
3年前
, 9F
09/19 18:29, 9F
→
09/19 18:30,
3年前
, 10F
09/19 18:30, 10F
推
09/19 18:35,
3年前
, 11F
09/19 18:35, 11F
→
09/19 18:35,
3年前
, 12F
09/19 18:35, 12F
→
09/19 18:52,
3年前
, 13F
09/19 18:52, 13F
→
09/19 20:25,
3年前
, 14F
09/19 20:25, 14F
推
09/19 20:58,
3年前
, 15F
09/19 20:58, 15F
→
09/19 20:59,
3年前
, 16F
09/19 20:59, 16F
→
09/19 21:00,
3年前
, 17F
09/19 21:00, 17F
推
09/20 11:01,
3年前
, 18F
09/20 11:01, 18F
→
09/20 11:01,
3年前
, 19F
09/20 11:01, 19F
推
09/20 13:48,
3年前
, 20F
09/20 13:48, 20F
推
09/21 18:46,
3年前
, 21F
09/21 18:46, 21F
→
09/21 18:46,
3年前
, 22F
09/21 18:46, 22F
→
09/21 18:47,
3年前
, 23F
09/21 18:47, 23F
→
09/21 18:48,
3年前
, 24F
09/21 18:48, 24F
推
09/22 01:07,
3年前
, 25F
09/22 01:07, 25F
→
09/22 01:07,
3年前
, 26F
09/22 01:07, 26F
→
09/22 01:07,
3年前
, 27F
09/22 01:07, 27F
→
09/22 01:07,
3年前
, 28F
09/22 01:07, 28F
→
09/23 05:54,
3年前
, 29F
09/23 05:54, 29F
→
09/23 05:54,
3年前
, 30F
09/23 05:54, 30F
→
09/23 05:54,
3年前
, 31F
09/23 05:54, 31F
→
09/23 05:54,
3年前
, 32F
09/23 05:54, 32F
→
09/23 05:54,
3年前
, 33F
09/23 05:54, 33F
→
09/23 21:53,
3年前
, 34F
09/23 21:53, 34F
→
09/23 21:54,
3年前
, 35F
09/23 21:54, 35F
→
09/23 21:54,
3年前
, 36F
09/23 21:54, 36F
→
09/24 01:45,
3年前
, 37F
09/24 01:45, 37F
→
09/24 01:45,
3年前
, 38F
09/24 01:45, 38F
→
09/24 01:45,
3年前
, 39F
09/24 01:45, 39F
推
09/24 05:50,
3年前
, 40F
09/24 05:50, 40F
→
09/24 05:50,
3年前
, 41F
09/24 05:50, 41F
→
09/24 05:50,
3年前
, 42F
09/24 05:50, 42F
→
09/24 05:51,
3年前
, 43F
09/24 05:51, 43F
→
09/24 05:51,
3年前
, 44F
09/24 05:51, 44F
→
09/24 05:51,
3年前
, 45F
09/24 05:51, 45F
→
09/24 05:51,
3年前
, 46F
09/24 05:51, 46F
→
09/24 05:51,
3年前
, 47F
09/24 05:51, 47F
→
09/24 05:51,
3年前
, 48F
09/24 05:51, 48F
→
09/24 05:51,
3年前
, 49F
09/24 05:51, 49F