libxl: ocaml: fix memory corruption when converting string and key/values lists

Found by Coverty. CIDs: 1128562 1128563 1128564 1128565.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: David Scott <dave.scott@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
Rob Hoes authored and Ian Campbell committed 2013-12-10 13:34:53 +00:00
1 parent 3a5767a869
commit 1dfb44be05
1 file changed
+3 -3
+3 -3
View File
@@ -151,8 +151,8 @@ static value Val_key_value_list(libxl_key_value_list *c_val)
list = Val_emptylist;
for (i = libxl_string_list_length((libxl_string_list *) c_val) - 1; i >= 0; i -= 2) {
val = caml_copy_string((char *) c_val[i]);
key = caml_copy_string((char *) c_val[i - 1]);
val = caml_copy_string((*c_val)[i]);
key = caml_copy_string((*c_val)[i - 1]);
kv = caml_alloc_tuple(2);
Store_field(kv, 0, key);
Store_field(kv, 1, val);
@@ -193,7 +193,7 @@ static value Val_string_list(libxl_string_list *c_val)
list = Val_emptylist;
for (i = libxl_string_list_length(c_val) - 1; i >= 0; i--) {
string = caml_copy_string((char *) c_val[i]);
string = caml_copy_string((*c_val)[i]);
cons = caml_alloc(2, 0);
Store_field(cons, 0, string); // head
Store_field(cons, 1, list); // tail
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.