From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22840 invoked from network); 8 May 2009 09:47:50 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 8 May 2009 09:47:50 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 8098 invoked from network); 8 May 2009 09:47:44 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 8 May 2009 09:47:44 -0000 Received: (qmail 14666 invoked by alias); 8 May 2009 09:47:36 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 26950 Received: (qmail 14626 invoked from network); 8 May 2009 09:47:35 -0000 Received: from bifrost.dotsrc.org (130.225.254.106) by sunsite.dk with SMTP; 8 May 2009 09:47:36 -0000 Received: from cluster-d.mailcontrol.com (cluster-d.mailcontrol.com [85.115.60.190]) by bifrost.dotsrc.org (Postfix) with ESMTPS id E7E4080590A3 for ; Fri, 8 May 2009 11:47:32 +0200 (CEST) Received: from cameurexb01.EUROPE.ROOT.PRI ([193.128.72.68]) by rly11d.srv.mailcontrol.com (MailControl) with ESMTP id n489lQ7v013145 for ; Fri, 8 May 2009 10:47:31 +0100 Received: from news01.csr.com ([10.99.50.25]) by cameurexb01.EUROPE.ROOT.PRI with Microsoft SMTPSVC(6.0.3790.3959); Fri, 8 May 2009 10:47:26 +0100 Received: from news01.csr.com (localhost.localdomain [127.0.0.1]) by news01.csr.com (8.14.2/8.13.4) with ESMTP id n489lQOj006462 for ; Fri, 8 May 2009 10:47:26 +0100 Received: from csr.com (pws@localhost) by news01.csr.com (8.14.2/8.14.2/Submit) with ESMTP id n489lQEQ006459 for ; Fri, 8 May 2009 10:47:26 +0100 X-Authentication-Warning: news01.csr.com: pws owned process doing -bs To: zsh-workers@sunsite.dk (Zsh hackers list) Subject: PATCH: warn if changing user or group ID fails X-Mailer: MH-E 8.0.3; nmh 1.3; GNU Emacs 22.1.1 Date: Fri, 08 May 2009 10:47:25 +0100 Message-ID: <6458.1241776045@csr.com> From: Peter Stephenson X-OriginalArrivalTime: 08 May 2009 09:47:26.0276 (UTC) FILETIME=[FE886840:01C9CFC1] X-Scanned-By: MailControl A-06-00-00 (www.mailcontrol.com) on 10.68.0.121 X-Virus-Scanned: ClamAV 0.92.1/9347/Fri May 8 07:10:18 2009 on bifrost X-Virus-Status: Clean Would anyone object to being told if an attempt to set the user or group ID parameters faild? Index: Src/params.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/params.c,v retrieving revision 1.155 diff -u -r1.155 params.c --- Src/params.c 11 Feb 2009 20:42:16 -0000 1.155 +++ Src/params.c 8 May 2009 09:45:56 -0000 @@ -3527,7 +3527,11 @@ # ifdef USE_INITGROUPS initgroups(x, pswd->pw_gid); # endif - if(!setgid(pswd->pw_gid) && !setuid(pswd->pw_uid)) { + if (setgid(pswd->pw_gid)) + zwarn("failed to change group ID: %e", errno); + else if (setuid(pswd->pw_uid)) + zwarn("failed to change user ID: %e", errno); + else { zsfree(cached_username); cached_username = ztrdup(pswd->pw_name); cached_uid = pswd->pw_uid; @@ -3553,7 +3557,8 @@ uidsetfn(UNUSED(Param pm), zlong x) { #ifdef HAVE_SETUID - setuid((uid_t)x); + if (setuid((uid_t)x)) + zwarn("failed to change user ID: %e", errno); #endif } @@ -3573,7 +3578,8 @@ euidsetfn(UNUSED(Param pm), zlong x) { #ifdef HAVE_SETEUID - seteuid((uid_t)x); + if (seteuid((uid_t)x)) + zwarn("failed to change effective user ID: %e", errno); #endif } @@ -3593,7 +3599,8 @@ gidsetfn(UNUSED(Param pm), zlong x) { #ifdef HAVE_SETUID - setgid((gid_t)x); + if (setgid((gid_t)x)) + zwarn("failed to change group ID: %e", errno); #endif } @@ -3613,7 +3620,8 @@ egidsetfn(UNUSED(Param pm), zlong x) { #ifdef HAVE_SETEUID - setegid((gid_t)x); + if (setegid((gid_t)x)) + zwarn("failed to change effective group ID: %e", errno); #endif } -- Peter Stephenson Software Engineer CSR PLC, Churchill House, Cambridge Business Park, Cowley Road Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070