diff options
Diffstat (limited to 'extension/rwarray.c')
-rw-r--r-- | extension/rwarray.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/extension/rwarray.c b/extension/rwarray.c index 2e82ca76..997b6b2f 100644 --- a/extension/rwarray.c +++ b/extension/rwarray.c @@ -114,7 +114,7 @@ do_writea(int nargs, awk_value_t *result, struct awk_ext_func *unused) if (nargs < 2) goto out; - /* directory is first arg, array to dump is second */ + /* filename is first arg, array to dump is second */ if (! get_argument(0, AWK_STRING, & filename)) { fprintf(stderr, _("do_writea: argument 0 is not a string\n")); errno = EINVAL; @@ -178,8 +178,10 @@ write_array(FILE *fp, awk_array_t array) return awk_false; for (i = 0; i < flat_array->count; i++) { - if (! write_elem(fp, & flat_array->elements[i])) + if (! write_elem(fp, & flat_array->elements[i])) { + (void) release_flattened_array(array, flat_array); return awk_false; + } } if (! release_flattened_array(array, flat_array)) { |