aboutsummaryrefslogtreecommitdiffstats
path: root/extension/fork.c
diff options
context:
space:
mode:
authorAndrew J. Schorr <aschorr@telemetry-investments.com>2012-04-02 22:36:26 -0400
committerAndrew J. Schorr <aschorr@telemetry-investments.com>2012-04-02 22:36:26 -0400
commitaa23de50eb7c81a3e8f94769c5288aecfeb52b4c (patch)
tree948ac542b0ba014af663d8dc782ac8f0a8494211 /extension/fork.c
parentd6d6a4ac9c6eb33a71595fd596b9a8f2db6444b7 (diff)
downloadegawk-aa23de50eb7c81a3e8f94769c5288aecfeb52b4c.tar.gz
egawk-aa23de50eb7c81a3e8f94769c5288aecfeb52b4c.tar.bz2
egawk-aa23de50eb7c81a3e8f94769c5288aecfeb52b4c.zip
Minor extension fixes.
Diffstat (limited to 'extension/fork.c')
-rw-r--r--extension/fork.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/extension/fork.c b/extension/fork.c
index 8b8558e6..7d6ab362 100644
--- a/extension/fork.c
+++ b/extension/fork.c
@@ -45,15 +45,17 @@ do_fork(int nargs)
if (ret < 0)
update_ERRNO_int(errno);
- else if (ret == 0) {
+ else if (ret == 0 && PROCINFO_node != NULL) {
/* update PROCINFO in the child */
aptr = assoc_lookup(PROCINFO_node, tmp = make_string("pid", 3));
- (*aptr)->numbr = (AWKNUM) getpid();
+ unref(*aptr);
+ *aptr = make_number((AWKNUM) getpid());
unref(tmp);
aptr = assoc_lookup(PROCINFO_node, tmp = make_string("ppid", 4));
- (*aptr)->numbr = (AWKNUM) getppid();
+ unref(*aptr);
+ *aptr = make_number((AWKNUM) getppid());
unref(tmp);
}