From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55320) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TK3Ol-00087o-CP for qemu-devel@nongnu.org; Fri, 05 Oct 2012 04:36:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TK3Oi-0006JE-Hv for qemu-devel@nongnu.org; Fri, 05 Oct 2012 04:36:43 -0400 Received: from e23smtp01.au.ibm.com ([202.81.31.143]:53841) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TK3Oh-0006Io-Vv for qemu-devel@nongnu.org; Fri, 05 Oct 2012 04:36:40 -0400 Received: from /spool/local by e23smtp01.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 5 Oct 2012 18:34:26 +1000 Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay04.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q958QooD22347778 for ; Fri, 5 Oct 2012 18:26:51 +1000 Received: from d23av03.au.ibm.com (loopback [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q958aOd6013599 for ; Fri, 5 Oct 2012 18:36:25 +1000 From: "M. Mohan Kumar" Date: Fri, 5 Oct 2012 14:06:19 +0530 Message-Id: <1349426179-16712-1-git-send-email-mohan@in.ibm.com> Subject: [Qemu-devel] [PATCH] fsdev: Don't ignore setfsuid/setfsgid return values List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, aneesh.kumar@linux.vnet.ibm.com, stefanha@gmail.com, eblake@redhat.com Cc: "M. Mohan Kumar" From: "M. Mohan Kumar" In current implementation of setfsuid/setfsgid there is no way to know if it failed by checking the return value. This patch assumes setfsuid/setfsgid returns -1 in case of error. Eventually kernel code needs to be fixed. Signed-off-by: M. Mohan Kumar --- fsdev/virtfs-proxy-helper.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c index f9a8270..ed5eede 100644 --- a/fsdev/virtfs-proxy-helper.c +++ b/fsdev/virtfs-proxy-helper.c @@ -290,9 +290,12 @@ static int setfsugid(int uid, int gid) CAP_DAC_OVERRIDE, }; - setfsgid(gid); - setfsuid(uid); - + if (setfsgid(gid) < 0) { + return -errno; + } + if (setfsuid(uid) < 0) { + return -errno; + } if (uid != 0 || gid != 0) { return do_cap_set(cap_list, ARRAY_SIZE(cap_list), 0); } -- 1.7.11.4