[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH for-4.6 13/13] tools/ocaml: handle strdup failure in stub_xl_device_disk_of_vdev



On 23/07/2015 08:59, Wei Liu wrote:
> Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> ---
> Cc: dave.scott@xxxxxxxxxxxxx
>
> Please check if the use of caml_failwith is correct.

This issue I have a different patch for, which could be 4.6 material, if
it weren't for the same issue as identified in patch 12.

In this case, Ocaml strings may contain embedded NULs which generally
makes the use of  the strxxx() functions incorrect.  OTOH, the first
thing libxl will do is assume that they are NUL terminated, so it
probably isn't too much of a problem.

There is already a dup_String_Val() function which attempts to deal with
this, although it has failure cases from integer overflows.

~Andrew

> ---
>  tools/ocaml/libs/xl/xenlight_stubs.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/tools/ocaml/libs/xl/xenlight_stubs.c 
> b/tools/ocaml/libs/xl/xenlight_stubs.c
> index 7b8d6db..dccd7ed 100644
> --- a/tools/ocaml/libs/xl/xenlight_stubs.c
> +++ b/tools/ocaml/libs/xl/xenlight_stubs.c
> @@ -780,6 +780,10 @@ value stub_xl_device_disk_of_vdev(value ctx, value 
> domid, value vdev)
>  
>       c_vdev = strdup(String_val(vdev));
>  
> +     if (!c_vdev) {
> +             caml_failwith("Failed to duplicate vdev string.");
> +     }
> +
>       caml_enter_blocking_section();
>       libxl_vdev_to_device_disk(CTX, c_domid, c_vdev, &c_disk);
>       caml_leave_blocking_section();


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.