提交 99e91993 编写于 作者: I igerasim

8054841: (process) ProcessBuilder leaks native memory

Reviewed-by: rriggs, alanb
上级 51f2b93c
...@@ -598,9 +598,9 @@ Java_java_lang_UNIXProcess_forkAndExec(JNIEnv *env, ...@@ -598,9 +598,9 @@ Java_java_lang_UNIXProcess_forkAndExec(JNIEnv *env,
*/ */
assert(prog != NULL && argBlock != NULL); assert(prog != NULL && argBlock != NULL);
if ((phelperpath = getBytes(env, helperpath)) == NULL) goto Catch; if ((phelperpath = getBytes(env, helperpath)) == NULL) goto Catch;
if ((pprog = getBytes(env, prog)) == NULL) goto Catch; if ((pprog = getBytes(env, prog)) == NULL) goto Catch;
if ((pargBlock = getBytes(env, argBlock)) == NULL) goto Catch; if ((pargBlock = getBytes(env, argBlock)) == NULL) goto Catch;
if ((c->argv = NEW(const char *, argc + 3)) == NULL) goto Catch; if ((c->argv = NEW(const char *, argc + 3)) == NULL) goto Catch;
c->argv[0] = pprog; c->argv[0] = pprog;
c->argc = argc + 2; c->argc = argc + 2;
initVectorFromBlock(c->argv+1, pargBlock, argc); initVectorFromBlock(c->argv+1, pargBlock, argc);
...@@ -689,10 +689,11 @@ Java_java_lang_UNIXProcess_forkAndExec(JNIEnv *env, ...@@ -689,10 +689,11 @@ Java_java_lang_UNIXProcess_forkAndExec(JNIEnv *env,
closeSafely(childenv[0]); closeSafely(childenv[0]);
closeSafely(childenv[1]); closeSafely(childenv[1]);
releaseBytes(env, prog, pprog); releaseBytes(env, helperpath, phelperpath);
releaseBytes(env, argBlock, pargBlock); releaseBytes(env, prog, pprog);
releaseBytes(env, envBlock, penvBlock); releaseBytes(env, argBlock, pargBlock);
releaseBytes(env, dir, c->pdir); releaseBytes(env, envBlock, penvBlock);
releaseBytes(env, dir, c->pdir);
free(c->argv); free(c->argv);
free(c->envv); free(c->envv);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册