Fixed bug in execve() on linux and bsd
Bryan Roe committed
Feb 2, 2021 at 22:32 UTC
6629a863399fdd692ae802a991a976b17ac407ad
2 files changed
+8
agents/meshcore.js
+4
@@ -3906,6 +3906,7 @@ function linux_execv(name, agentfilename, sessionid)
3906
var i;
3907
var args;
3908
var argarr = [process.execPath];
3909
+ var argtmp = [];
3910
var path = require('_GenericMarshal').CreateVariable(process.execPath);
3911
3912
if (require('MeshAgent').getStartupOptions != null) {
@@ -3918,6 +3919,7 @@ function linux_execv(name, agentfilename, sessionid)
3919
args = require('_GenericMarshal').CreateVariable((1 + argarr.length) * require('_GenericMarshal').PointerSize);
3920
for (i = 0; i < argarr.length; ++i) {
3921
var arg = require('_GenericMarshal').CreateVariable(argarr[i]);
3922
+ argtmp.push(arg);
3923
arg.pointerBuffer().copy(args.toBuffer(), i * require('_GenericMarshal').PointerSize);
3924
}
3925
@@ -3965,6 +3967,7 @@ function bsd_execv(name, agentfilename, sessionid) {
3967
var i;
3968
var path = require('_GenericMarshal').CreateVariable(process.execPath);
3969
var argarr = [process.execPath];
3970
+ var argtmp = [];
3971
var args;
3972
var options = require('MeshAgent').getStartupOptions();
3973
for (i in options) {
@@ -3973,6 +3976,7 @@ function bsd_execv(name, agentfilename, sessionid) {
3976
args = require('_GenericMarshal').CreateVariable((1 + argarr.length) * require('_GenericMarshal').PointerSize);
3977
for (i = 0; i < argarr.length; ++i) {
3978
var arg = require('_GenericMarshal').CreateVariable(argarr[i]);
3979
+ argtmp.push(arg);
3980
arg.pointerBuffer().copy(args.toBuffer(), i * require('_GenericMarshal').PointerSize);
3981
}
3982
agents/recoverycore.js
+4
@@ -237,6 +237,7 @@ function linux_execv(name, agentfilename, sessionid)
237
238
var i;
239
var args;
240
+ var argtmp = [];
241
var argarr = [process.execPath];
242
var path = require('_GenericMarshal').CreateVariable(process.execPath);
243
@@ -250,6 +251,7 @@ function linux_execv(name, agentfilename, sessionid)
251
args = require('_GenericMarshal').CreateVariable((1 + argarr.length) * require('_GenericMarshal').PointerSize);
252
for (i = 0; i < argarr.length; ++i) {
253
var arg = require('_GenericMarshal').CreateVariable(argarr[i]);
254
+ argtmp.push(arg);
255
arg.pointerBuffer().copy(args.toBuffer(), i * require('_GenericMarshal').PointerSize);
256
}
257
@@ -298,6 +300,7 @@ function bsd_execv(name, agentfilename, sessionid) {
300
var i;
301
var path = require('_GenericMarshal').CreateVariable(process.execPath);
302
var argarr = [process.execPath];
303
+ var argtmp = [];
304
var args;
305
var options = require('MeshAgent').getStartupOptions();
306
for (i in options) {
@@ -306,6 +309,7 @@ function bsd_execv(name, agentfilename, sessionid) {
309
args = require('_GenericMarshal').CreateVariable((1 + argarr.length) * require('_GenericMarshal').PointerSize);
310
for (i = 0; i < argarr.length; ++i) {
311
var arg = require('_GenericMarshal').CreateVariable(argarr[i]);
312
+ argtmp.push(arg);
313
arg.pointerBuffer().copy(args.toBuffer(), i * require('_GenericMarshal').PointerSize);
314
}
315