From owner-freebsd-current Wed Feb 5 14:14:48 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2238737B401 for ; Wed, 5 Feb 2003 14:14:47 -0800 (PST) Received: from puffin.mail.pas.earthlink.net (puffin.mail.pas.earthlink.net [207.217.120.139]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9993E43FCB for ; Wed, 5 Feb 2003 14:14:46 -0800 (PST) (envelope-from tlambert2@mindspring.com) Received: from pool0205.cvx21-bradley.dialup.earthlink.net ([209.179.192.205] helo=mindspring.com) by puffin.mail.pas.earthlink.net with asmtp (SSLv3:RC4-MD5:128) (Exim 3.33 #1) id 18gXoY-00046l-00; Wed, 05 Feb 2003 14:14:44 -0800 Message-ID: <3E418C3C.F4B99C78@mindspring.com> Date: Wed, 05 Feb 2003 14:12:12 -0800 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Anoop Ranganath Cc: freebsd-current@freebsd.org Subject: Re: tmpfile breakage on setuid executables References: <00e201c2cd5b$14f31c30$0c02040a@ranganath> <3E41846A.39AAE406@mindspring.com> <015c01c2cd60$7b6dc0a0$0c02040a@ranganath> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ELNK-Trace: b1a02af9316fbb217a47c185c03b154d40683398e744b8a45d18633c96ec37ac0c1e403c9f772dc393caf27dac41a8fd350badd9bab72f9c350badd9bab72f9c Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Anoop Ranganath wrote: > > > I've used the code at the bottom of this message to isolate this > > > bug. The summary is that when I compile the code as root, and then > > > make it setuid (chmod u+s a.out) and then try to run it as a user, the > > > tmpfile() fails. If I run it as root, it works fine. Conversely, I > > > can give user ownership of the executable, and then run it as user, and > > > it works great, but if fails for root. Again this is only with the > > > setuid bit set. > > > > Probably your real and effective UID's aren't the same. Does your > > SUID root program set the real UID from the effective UID? > > Well, the code sample I submitted in my original email doesn't set any UID. > It just creates a tmpfile() and then verifies that it succeeded. This is > definitely a regression from 4.7 though. Running the same code on 4.7 > succeeds, as it does on several other unix boxes. We need to know how we think it's supposed to work, not how you think it's supposed to work to determine if the error is in the code OR in the fact some old bug was fixed going from 4.7->5.0, and the fix is biting you, OR it's a real bug. So if you don't want to answer the question about whether or not the UID root program sets the real UID from the effective UID, then you need to answer a different one: Are you saying that the code you posted, without calling the "setuid(geteuid());" worked on 4.7 and not on 5.0, when you "chown root, chmod 4755" it? -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message