Skip to content

Commit 767cafa

Browse files
committed
initialize pChildEnvSeg to 0 as if failed, callers would potentially free random memory address
1 parent 868ae24 commit 767cafa

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

kernel/task.c

+2
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,12 @@ STATIC COUNT ChildEnv(exec_blk * exp, UWORD * pChildEnvSeg, char far * pathname)
139139
COUNT RetCode;
140140
/* UWORD MaxEnvSize; not used -- 1999/04/21 ska */
141141
psp FAR *ppsp = MK_FP(cu_psp, 0);
142+
*pChildEnvSeg = 0; /* initialize to invalid value, prevent free'ing random address on errors by callers of ChildEnv */
142143

143144
/* create a new environment for the process */
144145
/* copy parent's environment if exec.env_seg == 0 */
145146

147+
DebugPrintf(("ChildEnv: environment block is %u, using %s\n", exp->exec.env_seg, (exp->exec.env_seg)?"exec_blk":"parent_blk"));
146148
pSrc = exp->exec.env_seg ?
147149
MK_FP(exp->exec.env_seg, 0) : MK_FP(ppsp->ps_environ, 0);
148150

0 commit comments

Comments
 (0)