Terminate startup code with a null byte, too (indexed file random access bundles)

Reviewed By: javache

Differential Revision: D3310269

fbshipit-source-id: d0fbf5afd6baecf50ec568e8694a15c96e6a9c85
This commit is contained in:
David Aurelio 2016-05-17 09:48:00 -07:00 committed by Facebook Github Bot 1
parent f71329946c
commit 9092198b1b

View File

@ -67,13 +67,14 @@ function writeBuffers(stream, buffers) {
}); });
} }
function nullTerminatedBuffer(contents, encoding) {
return Buffer.concat([Buffer(contents, encoding), nullByteBuffer]);
}
function moduleToBuffer(id, code, encoding) { function moduleToBuffer(id, code, encoding) {
return { return {
id, id,
buffer: Buffer.concat([ buffer: nullTerminatedBuffer(code, encoding),
Buffer(code, encoding),
nullByteBuffer // create \0-terminated strings
])
}; };
} }
@ -129,7 +130,7 @@ function buildTableAndContents(startupCode, modules, encoding) {
// - code blob char[] null-terminated code strings, starting with // - code blob char[] null-terminated code strings, starting with
// the startup code // the startup code
const startupCodeBuffer = Buffer(startupCode, encoding); const startupCodeBuffer = nullTerminatedBuffer(startupCode, encoding);
const moduleBuffers = buildModuleBuffers(modules, encoding); const moduleBuffers = buildModuleBuffers(modules, encoding);
const table = buildModuleTable(startupCodeBuffer, moduleBuffers); const table = buildModuleTable(startupCodeBuffer, moduleBuffers);