Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

buffer: fix range checks for slice() #9174

Merged
merged 1 commit into from
Oct 20, 2016
Merged

Commits on Oct 20, 2016

  1. buffer: fix range checks for slice()

    Using the black magic of Symbol.toPrimitive the numeric value of
    start/end can be changed when Uint32Value() is called once
    Buffer::Fill() is entered. Allowing the CHECK() to be bypassed.
    
    The bug report was only for "start", but the same can be done with
    "end". Perform checks for both in node::Buffer::Fill() to make sure the
    issue can't be triggered, even if process.binding is used directly.
    
    Include tests for each case. Along with a check to make sure the last
    time the value is accessed returns -1. This should be enough to make
    sure Buffer::Fill() is receiving the correct value. Along with two tests
    against process.binding directly.
    
    Fixes: nodejs#9149
    PR-URL: nodejs#9174
    Reviewed-By: James M Snell <jasnell@gmail.com>
    Reviewed-By: Franziska Hinkelmann <ranziska.hinkelmann@gmail.com>
    Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
    trevnorris committed Oct 20, 2016
    Configuration menu
    Copy the full SHA
    7bffe23 View commit details
    Browse the repository at this point in the history