* examples/loadables/cut.c
cut_internal: fix leak of poslist, simplify by using builtin_find_indexed_array
---
diff --git a/examples/loadables/cut.c b/examples/loadables/cut.c
index ee51d9b9..e623c656 100644
--- a/examples/loadables/cut.c
+++ b/examples/loadables/cut.c
@@ -504,21 +504,12 @@ cut_internal (int which, WORD_LIST *list)
if (array_name)
{
- v = find_or_make_array_variable (array_name, 1);
- if (v == 0 || readonly_p (v) || noassign_p (v))
- {
- if (v && readonly_p (v))
- err_readonly (array_name);
- return (EXECUTION_FAILURE);
- }
- else if (array_p (v) == 0)
- {
- builtin_error ("%s: not an indexed array", array_name);
- return (EXECUTION_FAILURE);
- }
- if (invisible_p (v))
- VUNSETATTR (v, att_invisible);
- array_flush (array_cell (v));
+ v = builtin_find_indexed_array (array_name, 1);
+ if (v == 0)
+ {
+ free (poslist);
+ return (EXECUTION_FAILURE);
+ }
}
op.flags = cutflags;
@@ -542,6 +533,7 @@ cut_internal (int which, WORD_LIST *list)
else
rval = cutfile (v, list, &op);
+ free (poslist);
return (rval);
}