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:
Ben Noordhuis 2012-08-01 20:25:24 +02:00
parent fd56981b4c
commit 23f09d7e02

View File

@ -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));
} }