Re: [問題] 面試遇到readByte
我自己的解讀是
: bool ProcessEvilInput::onDecode(SkStream* stream, SkBitmap* bm,
: SkBitmap::Config pref, Mode mode)
: ...
: int width = readByte(buf, 6 + i*16);
: int height = readByte(buf, 7 + i*16);
: if (stream->read((void*)buf, length) != length){
// 因為他這邊是用void 所以如果length長度過長 會造成buffer overflow
: return false;
: }
: int offset = read4Bytes(buf, 18 + i*16);
: int bitCount = read2Bytes(buf, offset+14);
: switch (bitCount)
: {
: case 1:
: case 4:
: c = SkBitmap::kIndex8_config;
: break;
: case 8:
: case 24:
: case 32:
: c = SkBitmap::kARGB_8888_config;
: break;
: default:
: RETURN_ERROR(("Image with %d not supported\n", bitCount));
: continue;
: }
//因為case 1, 8, 24都沒有敘述,
有沒有可能駭客可以在這三個case執行惡意語法, 一直到break跳開
: ...
: }
整份coding就是這樣 我沒有縮減
麻煩大家指證 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 128.220.159.20
※ 編輯: glitzie 來自: 128.220.159.20 (05/15 06:26)
推
05/15 10:26, , 1F
05/15 10:26, 1F
→
05/15 10:30, , 2F
05/15 10:30, 2F
→
05/15 10:30, , 3F
05/15 10:30, 3F
→
05/15 11:30, , 4F
05/15 11:30, 4F
→
05/15 11:31, , 5F
05/15 11:31, 5F
推
05/15 11:55, , 6F
05/15 11:55, 6F
推
05/15 17:01, , 7F
05/15 17:01, 7F
→
05/15 17:01, , 8F
05/15 17:01, 8F
→
05/15 17:01, , 9F
05/15 17:01, 9F
→
05/16 01:41, , 10F
05/16 01:41, 10F
討論串 (同標題文章)