mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
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:
1 parent
3a5767a869
commit
1dfb44be05
1 file changed
+3
-3
@@ -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
|
||||
|
||||