From 21c31a811ca1705b71417fab520d9b39ae2ab3a7 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 18 Apr 2013 17:44:17 +0100 Subject: libxl: Fix SEGV in network-attach When "device/vif" directory exists but is empty l!=NULL, but nb==0, so l[nb-1] is invalid. Add missing check. Signed-off-by: Marek Marczykowski Acked-by: Ian Jackson Signed-off-by: Ian Jackson (cherry picked from commit 9f1a6ff38b8e7bb97a016794115de28553a6559f) Conflicts: tools/libxl/libxl.c Signed-off-by: Ian Jackson --- tools/libxl/libxl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 19ef6a0196..fbc6c07b72 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1207,7 +1207,8 @@ int libxl_device_nic_add(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic) goto out_free; } if (!(l = libxl__xs_directory(&gc, XBT_NULL, - libxl__sprintf(&gc, "%s/device/vif", dompath), &nb))) { + libxl__sprintf(gc, "%s/device/vif", dompath), &nb)) || + nb == 0) { nic->devid = 0; } else { nic->devid = strtoul(l[nb - 1], NULL, 10) + 1; -- cgit v1.2.3