summaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2011-11-29 17:13:17 +0000
committerRichard W.M. Jones <rjones@redhat.com>2011-11-29 17:13:17 +0000
commit6bd0eec12f2e39360847bfe7a9f50628cc89ed8e (patch)
treef0cf904790c07412d8860f5760958bf7b577046c /generator
parentbcd2dba76efa4da4edb1b04f6348b0a0dfb109c2 (diff)
downloadlibguestfs-6bd0eec12f2e39360847bfe7a9f50628cc89ed8e.tar.gz
libguestfs-6bd0eec12f2e39360847bfe7a9f50628cc89ed8e.tar.xz
libguestfs-6bd0eec12f2e39360847bfe7a9f50628cc89ed8e.zip
ocaml: Fix memory leak in bindings for functions that return buffers.
RBufferOut binding didn't free the buffer after copying it onto the OCaml heap. Found by valgrind.
Diffstat (limited to 'generator')
-rw-r--r--generator/generator_ocaml.ml1
1 files changed, 1 insertions, 0 deletions
diff --git a/generator/generator_ocaml.ml b/generator/generator_ocaml.ml
index 4f7548c5..10c18e37 100644
--- a/generator/generator_ocaml.ml
+++ b/generator/generator_ocaml.ml
@@ -625,6 +625,7 @@ copy_table (char * const * argv)
| RBufferOut _ ->
pr " rv = caml_alloc_string (size);\n";
pr " memcpy (String_val (rv), r, size);\n";
+ pr " free (r);\n"
);
pr " CAMLreturn (rv);\n";