Open
Description
NKF.swiftの
let out: (UnsafeMutablePointer<UInt8>, Int) = convert(src: src, length: length, options: newOptions)
からの
let ptr = UnsafeMutableRawPointer(out.0).assumingMemoryBound(to: CChar.self)
についてです。
ここでout.0内に壊れた文字列があってNULL終端っぽい扱いをされると、ptrが意図しないところで終わるような気がします。
そもそも不正なデータを送るのはアレですが。
let str = String(bytesNoCopy: ptr, length: out.1 - 1, encoding: .utf8, freeWhenDone: false)
とかサイズ指定をすると影響は最小限になると思います。
Metadata
Metadata
Assignees
Labels
No labels