<=v4: process.hrtime() segfaults on arrays with error-throwing accessors
- Version: 4.4.7 and below
- Platform: Linux spacesuit 4.4.0-31-generic #50 (closed)-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
- Subsystem: process
In latest node v4.x and below, when an array with an accessor that throws is passed into process.hrtime()
, it will produce a segmentation fault.
Example
const badArray = []
Object.defineProperty(badArray, 0, {
get: () => {
throw Error('I am a bad accessor')
}
})
process.hrtime(badArray)
On node v5.x and v6.x this will just throw, which is expected. On node v4.x and below, this produces a segmentation fault.
I think this was fixed on v5.x+ by this commit https://github.com/nodejs/node/commit/fc143da6f1def7bd337cc4a255ef8013f2de6517.
Though this particular case is really edgy, it's my understanding that node APIs probably shouldn't segfault ever.
/cc @mlfbrown
@deian
who found this.