Bug 1340735 - Terminate process when failing to attach it to job group. r?mhowell
MozReview-Commit-ID: BVCPRFH6TV2
--- a/toolkit/modules/subprocess/subprocess_worker_win.js
+++ b/toolkit/modules/subprocess/subprocess_worker_win.js
@@ -516,17 +516,20 @@ class Process extends BaseProcess {
ok = libc.SetInformationJobObject(this.jobHandle, win32.JobObjectExtendedLimitInformation,
ctypes.cast(info.address(), ctypes.voidptr_t),
info.constructor.size);
errorMessage = `Failed to set job limits: 0x${(ctypes.winLastError || 0).toString(16)}`;
}
if (ok) {
ok = libc.AssignProcessToJobObject(this.jobHandle, procInfo.hProcess);
- errorMessage = `Failed to attach process to job object: 0x${(ctypes.winLastError || 0).toString(16)}`;
+ if (!ok) {
+ libc.TerminateProcess(procInfo.hProcess, TERMINATE_EXIT_CODE);
+ errorMessage = `Failed to attach process to job object: 0x${(ctypes.winLastError || 0).toString(16)}`;
+ }
}
if (!ok) {
for (let pipe of this.pipes) {
pipe.close();
}
throw new Error(errorMessage);
}