libxl/libxl_dm.c: u.hvm.usbdevice_list is checked for emptiness
PATCH v2 1/1 libxl/libxl_dm.c: u.hvm.usbdevice_list is checked for emptiness
Currently usbdevice_list is only checked for nullity. But the OCaml binding will convert empty list to a pointer to NULL, instead of a NULL pointer. That means the OCaml binding will fail to disable USB.
This patch will check emptiness of usbdevice_list. And NULL is still a valid empty list.
--- tools/libxl/libxl_dm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
tools/libxl/libxl_dm.c +6 -6
@@ -559,9 +559,9 @@ static int libxl__build_device_model_args_old(libxl__gc *gc, }if (libxl_defbool_val (b_info->u.hvm.usb) || b_info->u.hvm.usbdevice - || b_info->u.hvm.usbdevice_list) { -if ( b_info->u.hvm.usbdevice && b_info->u.hvm.usbdevice_list ) - { + ||libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) { +if (b_info->u.hvm.usbdevice + &&libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) {LOGD (ERROR , domid,"Both usbdevice and usbdevice_list set" );return ERROR_INVAL ; }
@@ -1149,9 +1149,9 @@ static int libxl__build_device_model_args_new(libxl__gc *gc, }if (libxl_defbool_val (b_info->u.hvm.usb) || b_info->u.hvm.usbdevice - || b_info->u.hvm.usbdevice_list) { -if ( b_info->u.hvm.usbdevice && b_info->u.hvm.usbdevice_list ) - { + ||libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) { +if (b_info->u.hvm.usbdevice + &&libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) {LOGD (ERROR , guest_domid,"Both usbdevice and usbdevice_list set" );return ERROR_INVAL ; }
Signature · 7 lines
2.9.3 _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
Robin Lee writes ("[PATCH v2] libxl/libxl_dm.c: u.hvm.usbdevice_list is checked for emptiness"):
Quoted 5 lines
Currently
usbdevice_listis only checked for nullity. But the OCaml binding will convert empty list to a pointer to NULL, instead of a NULL pointer. That means the OCaml binding will fail to disable USB.This patch will check emptiness of
usbdevice_list. And NULL is still a valid empty list.
Julien, this is a candidate for 4.9. It's a minor bugfix.
Ian.
Quoted 36 lines
tools/libxl/libxl_dm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)tools/libxl/libxl_dm.c +6
-6@@ -559,9 +559,9 @@ static int libxl__build_device_model_args_old(libxl__gc *gc, }if (libxl_defbool_val (b_info->u.hvm.usb) || b_info->u.hvm.usbdevice - || b_info->u.hvm.usbdevice_list) { -if ( b_info->u.hvm.usbdevice && b_info->u.hvm.usbdevice_list ) - { + ||libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) { +if (b_info->u.hvm.usbdevice + &&libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) {LOGD (ERROR , domid,"Both usbdevice and usbdevice_list set" );return ERROR_INVAL ; }@@ -1149,9 +1149,9 @@ static int libxl__build_device_model_args_new(libxl__gc *gc, }if (libxl_defbool_val (b_info->u.hvm.usb) || b_info->u.hvm.usbdevice - || b_info->u.hvm.usbdevice_list) { -if ( b_info->u.hvm.usbdevice && b_info->u.hvm.usbdevice_list ) - { + ||libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) { +if (b_info->u.hvm.usbdevice + &&libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) {LOGD (ERROR , guest_domid,"Both usbdevice and usbdevice_list set" );return ERROR_INVAL ; }Signature · 1 line
2.9.3
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel
Hi Ian,
Quoted 10 lines · Ian Jackson
Robin Lee writes ("[PATCH v2]
libxl/libxl_dm.c: u.hvm.usbdevice_list is checked for emptiness"):Quoted 5 lines
Currently
usbdevice_listis only checked for nullity. But the OCaml binding will convert empty list to a pointer to NULL, instead of a NULL pointer. That means the OCaml binding will fail to disable USB.This patch will check emptiness of
usbdevice_list. And NULL is still a valid empty list.Acked-by Ian Jackson <[email protected]>Julien, this is a candidate for 4.9. It's a minor bugfix.
Quoted 39 lines
Ian.
Quoted 36 lines
tools/libxl/libxl_dm.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)tools/libxl/libxl_dm.c +6
-7@@ -559,9 +559,9 @@ static int libxl__build_device_model_args_old(libxl__gc *gc, }if (libxl_defbool_val (b_info->u.hvm.usb) || b_info->u.hvm.usbdevice - || b_info->u.hvm.usbdevice_list) { -if ( b_info->u.hvm.usbdevice && b_info->u.hvm.usbdevice_list ) - { + ||libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) { +if (b_info->u.hvm.usbdevice + &&libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) {LOGD (ERROR , domid,"Both usbdevice and usbdevice_list set" );return ERROR_INVAL ; }@@ -1149,9 +1149,9 @@ static int libxl__build_device_model_args_new(libxl__gc *gc, }if (libxl_defbool_val (b_info->u.hvm.usb) || b_info->u.hvm.usbdevice - || b_info->u.hvm.usbdevice_list) { -if ( b_info->u.hvm.usbdevice && b_info->u.hvm.usbdevice_list ) - { + ||libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) { +if (b_info->u.hvm.usbdevice + &&libxl_string_list_length (&b_info->u.hvm.usbdevice_list)) {LOGD (ERROR , guest_domid,"Both usbdevice and usbdevice_list set" );return ERROR_INVAL ; } --2.9.3
Signature · 6 lines
Julien Grall _______________________________________________ Xen-devel mailing list [email protected] https://lists.xen.org/xen-devel
Julien Grall writes ("Re: [for-4.9] Re: [PATCH v2] libxl/libxl_dm.c: u.hvm.usbdevice_list is checked for emptiness"):
Quoted 4 lines · Ian Jackson
Quoted 1 line
Julien, this is a candidate for 4.9. It's a minor bugfix.
Release-acked-by Julien Grall <[email protected]>
Thanks. Committed.
Ian.
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xen.org/xen-devel