aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog6
-rw-r--r--extension/fork.c8
-rw-r--r--extension/readfile.c2
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;