diff options
-rw-r--r-- | extension/ChangeLog | 6 | ||||
-rw-r--r-- | extension/fork.c | 8 | ||||
-rw-r--r-- | extension/readfile.c | 2 |
3 files changed, 12 insertions, 4 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index dc017d30..287ce309 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,9 @@ +2012-04-02 Andrew J. Schorr <aschorr@telemetry-investments.com> + + * fork.c (do_fork): Test whether PROCINFO_node exists before updating + the pid values. And do so properly using make_number. + * readfile.c (do_readfile): Function should be static. + 2012-04-01 Andrew J. Schorr <aschorr@telemetry-investments.com> * filefuncs.c (do_chdir, do_stat): Replace update_ERRNO() with 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); } diff --git a/extension/readfile.c b/extension/readfile.c index 9c18601d..57cf6cdd 100644 --- a/extension/readfile.c +++ b/extension/readfile.c @@ -41,7 +41,7 @@ int plugin_is_GPL_compatible; /* do_readfile --- read a file into memory */ -NODE * +static NODE * do_readfile(int nargs) { NODE *filename; |