[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxenlight: add fuse around generic_device_add related to invalid kinds
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1263462094 0 # Node ID fd8707f8698d6cc101332187bf080827826a460e # Parent 94442ca0423d34d2618ce76de196a42ef995873a libxenlight: add fuse around generic_device_add related to invalid kinds prevent segfault in case the backend or frontend kinds have not been set to a correct kind value (or not initilized). Signed-off-by: Vincent Hanquez <vincent.hanquez@xxxxxxxxxxxxx> --- tools/libxl/libxl_device.c | 5 ++++- tools/libxl/libxl_internal.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff -r 94442ca0423d -r fd8707f8698d tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Thu Jan 14 09:40:55 2010 +0000 +++ b/tools/libxl/libxl_device.c Thu Jan 14 09:41:34 2010 +0000 @@ -26,7 +26,7 @@ #include "libxl.h" #include "libxl_internal.h" -const char *string_of_kinds[] = { +static const char *string_of_kinds[] = { [DEVICE_VIF] = "vif", [DEVICE_VBD] = "vbd", [DEVICE_TAP] = "tap", @@ -44,6 +44,9 @@ int libxl_device_generic_add(struct libx struct xs_permissions frontend_perms[2]; struct xs_permissions backend_perms[2]; struct xs_permissions hotplug_perms[1]; + + if (!is_valid_device_kind(device->backend_kind) || !is_valid_device_kind(device->kind)) + return ERROR_INVAL; dom_path_backend = libxl_xs_get_dompath(ctx, device->backend_domid); dom_path = libxl_xs_get_dompath(ctx, device->domid); diff -r 94442ca0423d -r fd8707f8698d tools/libxl/libxl_internal.h --- a/tools/libxl/libxl_internal.h Thu Jan 14 09:40:55 2010 +0000 +++ b/tools/libxl/libxl_internal.h Thu Jan 14 09:41:34 2010 +0000 @@ -68,7 +68,7 @@ typedef enum { DEVICE_CONSOLE, } libxl_device_kinds; -extern const char *string_of_kinds[]; +#define is_valid_device_kind(kind) (((kind) >= DEVICE_VIF) && ((kind) <= DEVICE_CONSOLE)) typedef struct { uint32_t backend_devid; _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |