|
Message-ID: <CAKfGGh12wz1QMPcdLiQuGaCyuyt57hV2nsY9TAJ8A=D76a7ZYA@mail.gmail.com> Date: Sun, 24 Aug 2014 22:51:09 +0200 From: "piranna@...il.com" <piranna@...il.com> To: musl@...ts.openwall.com Subject: Bug on fstat()? I have been able to compile Node.js using musl to create a fully statically linked executable (SSL disabled, OpenSSL was giving too much problems...), and although Node.js REPL works, it can't be able to load script files. Digging on the code I have got to the point that Node.js do a fstat() call to know the size of the script file so it can fill a buffer of the correct size, problem is that fstat() is giving me some crazy values. I did the same before using glibc and it was able to load simple script files, so seems to be a problem related to musl (or the environment I've crafted to be able to compile Node.js using musl). The simple test file is: #!./node while(true) { console.log('Hello NodeOS! :-)') }; ./node is the musl-compiled static Node.js executable. Executing this file from console give me the next error, the same error is thrown by dispatching it as parameter of the Node.js executable: fs.js:505 var r = binding.read(fd, buffer, offset, length, position); ^ Error: Offset is out of bounds at Error (native) at Object.fs.readSync (fs.js:505:19) at Object.fs.readFileSync (fs.js:346:28) at Object.Module._extensions..js (module.js:477:20) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:124:16) at node.js:811:3 The values that fstat() is returning are: { dev: 2051, mode: 33261, nlink: 1, uid: 1000, gid: 1000, rdev: 0, blksize: 8, ino: 584753551390482400, size: 17592186044477, blocks: 1485010404567043000, atime: Sun Aug 24 2014 22:33:06 GMT+0200 (CEST), mtime: Sun Aug 24 2014 22:33:06 GMT+0200 (CEST), ctime: Thu Jan 01 1970 01:00:00 GMT+0100 (CET), birthtime: Thu Jan 01 1970 01:00:00 GMT+0100 (CET) } As you can see, is giving a size of 164GBs for a file of just 68 characters :-) ino, blocks and blksize have some strange values too, but the other fields seems to be normal. As I told you, fstat() give a correct output while compiling Node.js with glibc. I'm using musl with the musl-gcc wrapper, and since it was giving me problems related to some includes not available, I've done some (not very clean, I know) symbolic links to them: sudo ln -s /usr/include/linux /usr/include/i386-linux-musl/linux sudo ln -s /usr/include/i386-linux-gnu/asm /usr/include/i386-linux-musl/asm sudo ln -s /usr/include/asm-generic /usr/include/i386-linux-musl/asm-generic Any advice about what could be happening? How could I be able to solve it? -- "Si quieres viajar alrededor del mundo y ser invitado a hablar en un monton de sitios diferentes, simplemente escribe un sistema operativo Unix." – Linus Tordvals, creador del sistema operativo Linux
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.