--- /dev/null
+From 750e3168705de678474fea0a551f9cf29e9e077d Mon Sep 17 00:00:00 2001
+From: "Arnold D. Robbins" <arnold@skeeve.com>
+Date: Sat, 28 Oct 2017 23:22:15 +0300
+Subject: [PATCH] Small improvements in extension/rwarray.c.
+
+---
+ extension/ChangeLog | 5 +++++
+ extension/rwarray.c | 6 ++++--
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/extension/ChangeLog b/extension/ChangeLog
+index 4bfd896..c04e9c2 100644
+--- a/extension/ChangeLog
++++ b/extension/ChangeLog
+@@ -1,3 +1,8 @@
++2017-10-28 Arnold D. Robbins <arnold@skeeve.com>
++
++ * rwarray.c (do_writea): Fix description in comment.
++ (write_array): Free the flattened array if writing an element fails.
++
+ 2017-10-19 Arnold D. Robbins <arnold@skeeve.com>
+
+ * 4.2.0: Release tar ball made.
+diff --git a/extension/rwarray.c b/extension/rwarray.c
+index 2e82ca7..997b6b2 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)) {
+--
+2.9.5
+