fs: fix readFileSync("/proc/cpuinfo") regression
Don't use positional reads. Not all proc files support pread(), especially on older linux kernels. Fixes #3808.
This commit is contained in:
parent
fd56981b4c
commit
23f09d7e02
@ -205,12 +205,12 @@ fs.readFileSync = function(path, encoding) {
|
|||||||
var threw = true;
|
var threw = true;
|
||||||
try {
|
try {
|
||||||
if (size !== 0) {
|
if (size !== 0) {
|
||||||
var bytesRead = fs.readSync(fd, buffer, pos, size - pos, pos);
|
var bytesRead = fs.readSync(fd, buffer, pos, size - pos);
|
||||||
} else {
|
} else {
|
||||||
// the kernel lies about many files.
|
// the kernel lies about many files.
|
||||||
// Go ahead and try to read some bytes.
|
// Go ahead and try to read some bytes.
|
||||||
buffer = new Buffer(8192);
|
buffer = new Buffer(8192);
|
||||||
var bytesRead = fs.readSync(fd, buffer, 0, 8192, pos);
|
var bytesRead = fs.readSync(fd, buffer, 0, 8192);
|
||||||
if (bytesRead) {
|
if (bytesRead) {
|
||||||
buffers.push(buffer.slice(0, bytesRead));
|
buffers.push(buffer.slice(0, bytesRead));
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user