+
+/* Copy string array value. */
+char **
+ocaml_guestfs_strings_val (guestfs_h *g, value sv)
+{
+ CAMLparam1 (sv);
+ char **r;
+ unsigned int i;
+
+ r = guestfs_safe_malloc (g, sizeof (char *) * (Wosize_val (sv) + 1));
+ for (i = 0; i < Wosize_val (sv); ++i)
+ r[i] = guestfs_safe_strdup (g, String_val (Field (sv, i)));
+ r[i] = NULL;
+
+ CAMLreturnT (char **, r);
+}
+
+/* Free array of strings. */
+void
+ocaml_guestfs_free_strings (char **argv)
+{
+ unsigned int i;
+
+ for (i = 0; argv[i] != NULL; ++i)
+ free (argv[i]);
+ free (argv);
+}