mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
Correctly free memory in RHashtable binding for OCaml & Python.
This commit is contained in:
@@ -1919,6 +1919,7 @@ ocaml_guestfs_tune2fs_l (value gv, value devicev)
|
||||
caml_failwith ("tune2fs_l: used handle after closing it");
|
||||
|
||||
const char *device = String_val (devicev);
|
||||
int i;
|
||||
char **r;
|
||||
|
||||
caml_enter_blocking_section ();
|
||||
@@ -1928,6 +1929,7 @@ ocaml_guestfs_tune2fs_l (value gv, value devicev)
|
||||
ocaml_guestfs_raise_error (g, "tune2fs_l");
|
||||
|
||||
rv = copy_table (r);
|
||||
for (i = 0; r[i] != NULL; ++i) free (r[i]);
|
||||
free (r);
|
||||
CAMLreturn (rv);
|
||||
}
|
||||
|
||||
@@ -2072,7 +2072,7 @@ py_guestfs_tune2fs_l (PyObject *self, PyObject *args)
|
||||
}
|
||||
|
||||
py_r = put_table (r);
|
||||
free (r);
|
||||
free_strings (r);
|
||||
return py_r;
|
||||
}
|
||||
|
||||
|
||||
@@ -3533,6 +3533,7 @@ copy_table (char * const * argv)
|
||||
| RStatVFS _ ->
|
||||
pr " struct guestfs_statvfs *r;\n"; "NULL"
|
||||
| RHashtable _ ->
|
||||
pr " int i;\n";
|
||||
pr " char **r;\n";
|
||||
"NULL" in
|
||||
pr "\n";
|
||||
@@ -3588,6 +3589,7 @@ copy_table (char * const * argv)
|
||||
pr " free (r);\n";
|
||||
| RHashtable _ ->
|
||||
pr " rv = copy_table (r);\n";
|
||||
pr " for (i = 0; r[i] != NULL; ++i) free (r[i]);\n";
|
||||
pr " free (r);\n";
|
||||
);
|
||||
|
||||
@@ -4447,7 +4449,7 @@ py_guestfs_close (PyObject *self, PyObject *args)
|
||||
pr " free (r);\n"
|
||||
| RHashtable n ->
|
||||
pr " py_r = put_table (r);\n";
|
||||
pr " free (r);\n"
|
||||
pr " free_strings (r);\n"
|
||||
);
|
||||
|
||||
pr " return py_r;\n";
|
||||
|
||||
Reference in New Issue
Block a user