ffi: reject non-boolean copy arguments · nodejs/node@51daf16 · GitHub
Skip to content

Commit 51daf16

Browse files
christianaurichzmaduh95
authored andcommitted
ffi: reject non-boolean copy arguments
ffi.toBuffer() and ffi.toArrayBuffer() document copy as a boolean, but read it with BooleanValue(), which applies JavaScript truthiness. A falsy non-boolean such as null, 0 or '' therefore selects the zero-copy mode, which returns a writable view over foreign memory instead of a copy, while values such as 'false' or 1 select a copy. Throw ERR_INVALID_ARG_TYPE when copy is neither undefined nor a boolean. Omitting copy or passing undefined still makes a copy, and true and false keep their current behavior. Signed-off-by: Christian Aurich Zanettini Martins <christian.aurichzm@gmail.com> PR-URL: #66219 Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
1 parent 81e4ac4 commit 51daf16

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

‎src/ffi/data.cc‎

Lines changed: 12 additions & 5 deletions

‎test/ffi/test-ffi-memory.js‎

Lines changed: 12 additions & 0 deletions

0 commit comments

Comments
 (0)