From: Ian Jackson Date: Fri, 15 Sep 2017 17:21:53 +0000 (+0100) Subject: libxl: libxl__dm_runas_helper: return pwd X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1141 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=89da2861923d52eb9d239bb6335eed118ce8080b;p=xen.git libxl: libxl__dm_runas_helper: return pwd Signed-off-by: Ian Jackson Acked-by: Wei Liu --- diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index 00718c5059..620b66b0e2 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -750,7 +750,8 @@ libxl__detect_gfx_passthru_kind(libxl__gc *gc, } /* return 1 if the user was found, 0 if it was not, -1 on error */ -static int libxl__dm_runas_helper(libxl__gc *gc, const char *username) +static int libxl__dm_runas_helper(libxl__gc *gc, const char *username, + struct passwd **pwd_r) { struct passwd pwd, *user = NULL; char *buf = NULL; @@ -774,8 +775,10 @@ static int libxl__dm_runas_helper(libxl__gc *gc, const char *username) } if (ret != 0) return ERROR_FAIL; - if (user != NULL) + if (user != NULL) { + if (pwd_r) *pwd_r = pwd; return 1; + } return 0; } } @@ -1642,14 +1645,14 @@ static int libxl__build_device_model_args_new(libxl__gc *gc, } user = GCSPRINTF("%s%d", LIBXL_QEMU_USER_BASE, guest_domid); - ret = libxl__dm_runas_helper(gc, user); + ret = libxl__dm_runas_helper(gc, user, 0); if (ret < 0) return ret; if (ret > 0) goto end_search; user = LIBXL_QEMU_USER_SHARED; - ret = libxl__dm_runas_helper(gc, user); + ret = libxl__dm_runas_helper(gc, user, 0); if (ret < 0) return ret; if (ret > 0) {