buffer: fix lastIndexOf and indexOf in various edge cases by addaleax · Pull Request #6511 · nodejs/node
nodejs-github-bot
added
the
c++
label
May 2, 2016
addaleax
changed the title
buffer: fix lastIndexOf crash for overlong needle
buffer: fix lastIndexOf and indexOf in various edge cases
MylesBorins pushed a commit that referenced this pull request
May 16, 2016Fix `buffer.indexOf` for the case that the haystack has odd length and the needle is not found in it. `StringSearch()` would return the length of the buffer in multiples of `sizeof(uint16_t)`, but checking that against `haystack_length` would not work if the latter one was odd. PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
MylesBorins pushed a commit that referenced this pull request
May 16, 2016PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
evanlucas pushed a commit that referenced this pull request
May 17, 2016Fix `buffer.lastIndexOf()` for the case that the first character of the needle is contained in the haystack, but in a location that makes it impossible to be part of a full match. For example, when searching for 'abc' in 'abcdef', only the 'cdef' part needs to be searched for 'c', because earlier locations can be excluded by index calculations alone. Previously, such a search would result in an assertion failure. This applies only to Node.js v6, as `lastIndexOf` was added in it. PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
evanlucas pushed a commit that referenced this pull request
May 17, 2016Return -1 in `Buffer.lastIndexOf` if the needle is longer than the haystack. The previous check only tested the corresponding condition for forward searches. This applies only to Node.js v6, as `lastIndexOf` was added in it. Fixes: #6510 PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
evanlucas pushed a commit that referenced this pull request
May 17, 2016Use `StringBytes::Size` to determine the needle string length instead of assuming latin-1 or UTF-8. Previously, `Buffer.indexOf` could fail with an assertion failure when the needle's byte length, but not its character count, exceeded the haystack's byte length. PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
evanlucas pushed a commit that referenced this pull request
May 17, 2016Fix `buffer.indexOf` for the case that the haystack has odd length and the needle is not found in it. `StringSearch()` would return the length of the buffer in multiples of `sizeof(uint16_t)`, but checking that against `haystack_length` would not work if the latter one was odd. PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
evanlucas pushed a commit that referenced this pull request
May 17, 2016PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
evanlucas added a commit that referenced this pull request
May 17, 2016- **buffer**: fix lastIndexOf and indexOf in various edge cases (Anna Henningsen) [#6511](#6511) - **child_process**: use /system/bin/sh on android (Ben Noordhuis) [#6745](#6745) - **deps**: - upgrade npm to 3.8.9 (Rebecca Turner) [#6664](#6664) - upgrade to V8 5.0.71.47 (Ali Ijaz Sheikh) [#6572](#6572) - upgrade libuv to 1.9.1 (Saúl Ibarra Corretgé) [#6796](#6796) - Intl: ICU 57 bump (Steven R. Loomis) [#6088](#6088) - **repl**: - copying tabs shouldn't trigger completion (Eugene Obrezkov) [#5958](#5958) - exports `Recoverable` (Blake Embrey) [#3488](#3488) - **src**: add O_NOATIME constant (Rich Trott) [#6492](#6492) - **src,module**: add --preserve-symlinks command line flag (James M Snell) [#6537](#6537) - **util**: adhere to `noDeprecation` set at runtime (Anna Henningsen) [#6683](#6683)
evanlucas added a commit that referenced this pull request
May 17, 2016- **buffer**: fix lastIndexOf and indexOf in various edge cases (Anna Henningsen) [#6511](#6511) - **child_process**: use /system/bin/sh on android (Ben Noordhuis) [#6745](#6745) - **deps**: - upgrade npm to 3.8.9 (Rebecca Turner) [#6664](#6664) - upgrade to V8 5.0.71.47 (Ali Ijaz Sheikh) [#6572](#6572) - upgrade libuv to 1.9.1 (Saúl Ibarra Corretgé) [#6796](#6796) - Intl: ICU 57 bump (Steven R. Loomis) [#6088](#6088) - **repl**: - copying tabs shouldn't trigger completion (Eugene Obrezkov) [#5958](#5958) - exports `Recoverable` (Blake Embrey) [#3488](#3488) - **src**: add O_NOATIME constant (Rich Trott) [#6492](#6492) - **src,module**: add --preserve-symlinks command line flag (James M Snell) [#6537](#6537) - **util**: adhere to `noDeprecation` set at runtime (Anna Henningsen) [#6683](#6683) As of this release the 6.X line now includes 64-bit binaries for Linux on Power Systems running in big endian mode in addition to the existing 64-bit binaries for running in little endian mode. PR-URL: #6810
evanlucas added a commit that referenced this pull request
May 17, 2016- **buffer**: fix lastIndexOf and indexOf in various edge cases (Anna Henningsen) [#6511](#6511) - **child_process**: use /system/bin/sh on android (Ben Noordhuis) [#6745](#6745) - **deps**: - upgrade npm to 3.8.9 (Rebecca Turner) [#6664](#6664) - upgrade to V8 5.0.71.47 (Ali Ijaz Sheikh) [#6572](#6572) - upgrade libuv to 1.9.1 (Saúl Ibarra Corretgé) [#6796](#6796) - Intl: ICU 57 bump (Steven R. Loomis) [#6088](#6088) - **repl**: - copying tabs shouldn't trigger completion (Eugene Obrezkov) [#5958](#5958) - exports `Recoverable` (Blake Embrey) [#3488](#3488) - **src**: add O_NOATIME constant (Rich Trott) [#6492](#6492) - **src,module**: add --preserve-symlinks command line flag (James M Snell) [#6537](#6537) - **util**: adhere to `noDeprecation` set at runtime (Anna Henningsen) [#6683](#6683) As of this release the 6.X line now includes 64-bit binaries for Linux on Power Systems running in big endian mode in addition to the existing 64-bit binaries for running in little endian mode. PR-URL: #6810
MylesBorins pushed a commit that referenced this pull request
May 18, 2016Use `StringBytes::Size` to determine the needle string length instead of assuming latin-1 or UTF-8. Previously, `Buffer.indexOf` could fail with an assertion failure when the needle's byte length, but not its character count, exceeded the haystack's byte length. PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
MylesBorins pushed a commit that referenced this pull request
May 18, 2016Fix `buffer.indexOf` for the case that the haystack has odd length and the needle is not found in it. `StringSearch()` would return the length of the buffer in multiples of `sizeof(uint16_t)`, but checking that against `haystack_length` would not work if the latter one was odd. PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
MylesBorins pushed a commit that referenced this pull request
May 18, 2016PR-URL: #6511 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
MylesBorins pushed a commit that referenced this pull request
May 18, 2016Notable changes:
* **buffer**:
* Buffer no longer errors if you call lastIndexOf with a search term
longer than the buffer (Anna Henningsen)
#6511
* deps:
* update npm to 2.15.5 (Rebecca Turner)
#6663
* http:
* Invalid status codes can no longer be sent. Limited to 3 digit
numbers between 100 - 999 (Brian White)
#6291
MylesBorins pushed a commit that referenced this pull request
May 20, 2016Notable changes:
* **buffer**:
* Buffer no longer errors if you call lastIndexOf with a search term
longer than the buffer (Anna Henningsen)
#6511
* contextify:
* Context objects are now properly garbage collected, this solves a
problem some individuals were experiencing with extreme memory
growth (Ali Ijaz Sheikh)
#6871
* deps:
* update npm to 2.15.5 (Rebecca Turner)
#6663
* http:
* Invalid status codes can no longer be sent. Limited to 3 digit
numbers between 100 - 999 (Brian White)
#6291
MylesBorins pushed a commit that referenced this pull request
May 23, 2016Notable changes:
* **buffer**:
* Buffer no longer errors if you call lastIndexOf with a search term
longer than the buffer (Anna Henningsen)
#6511
* contextify:
* Context objects are now properly garbage collected, this solves a
problem some individuals were experiencing with extreme memory
growth (Ali Ijaz Sheikh)
#6871
* deps:
* update npm to 2.15.5 (Rebecca Turner)
#6663
* http:
* Invalid status codes can no longer be sent. Limited to 3 digit
numbers between 100 - 999 (Brian White)
#6291
MylesBorins pushed a commit that referenced this pull request
May 24, 2016Notable changes:
* **buffer**:
* Buffer no longer errors if you call lastIndexOf with a search term
longer than the buffer (Anna Henningsen)
#6511
* contextify:
* Context objects are now properly garbage collected, this solves a
problem some individuals were experiencing with extreme memory
growth (Ali Ijaz Sheikh)
#6871
* deps:
* update npm to 2.15.5 (Rebecca Turner)
#6663
* http:
* Invalid status codes can no longer be sent. Limited to 3 digit
numbers between 100 - 999 (Brian White)
#6291
MylesBorins pushed a commit that referenced this pull request
May 24, 2016Notable changes:
* **buffer**:
* Buffer no longer errors if you call lastIndexOf with a search term
longer than the buffer (Anna Henningsen)
#6511
* contextify:
* Context objects are now properly garbage collected, this solves a
problem some individuals were experiencing with extreme memory
growth (Ali Ijaz Sheikh)
#6871
* deps:
* update npm to 2.15.5 (Rebecca Turner)
#6663
* http:
* Invalid status codes can no longer be sent. Limited to 3 digit
numbers between 100 - 999 (Brian White)
#6291
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters