From owner-freebsd-current@FreeBSD.ORG Thu Oct 18 12:45:53 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B93B16A41A for ; Thu, 18 Oct 2007 12:45:53 +0000 (UTC) (envelope-from matrix@itlegion.ru) Received: from corpmail.itlegion.ru (corpmail.itlegion.ru [84.21.226.211]) by mx1.freebsd.org (Postfix) with SMTP id 7B25913C46E for ; Thu, 18 Oct 2007 12:45:52 +0000 (UTC) (envelope-from matrix@itlegion.ru) Received: (qmail 64322 invoked from network); 18 Oct 2007 16:45:50 +0400 Received: from unknown (HELO Artem) (192.168.0.12) by 84.21.226.211 with SMTP; 18 Oct 2007 16:45:50 +0400 X-AntiVirus: Checked by Dr.Web [version: 4.44, engine: 4.44.0.09170, virus records: 250008, updated: 18.10.2007] Message-ID: <010f01c81184$cd375550$0c00a8c0@Artem> From: "Artem Kuchin" To: =?UTF-8?B?6Z+T5a625qiZIEJpbGwgSGFja2Vy?= , References: <00bd01c810ec$10371230$0c00a8c0@Artem> <8cb6106e0710171143m3dff7546o457192ede76e6598@mail.gmail.com> <012c01c810f3$aafeecf0$0c00a8c0@Artem> <20071017193615.GO9006@server.vk2pj.dyndns.org> <471667DB.1010601@conducive.net> <47170FF1.3050602@moneybookers.com> <471746C7.20306@conducive.net><47174BE4.6020300@moneybookers.com> <4717523E.1000403@conducive.net> Date: Thu, 18 Oct 2007 16:45:37 +0400 Organization: IT Legion MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="UTF-8"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.3138 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198 Cc: Subject: Re: Broken su in current - trying to fix myself, help needed! X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2007 12:45:53 -0000 > What Artem is seeing is not (yet) a 'bug' in su in my mind. > You missed reply from David Xu in the list on this matter. To me there is CLEARLY a bug in the source code. It tried to get group of already dead process. Here is quote from my and David's letters: > The weird thing is that if i just comment out those lines like this > > /* child_pgrp = getpgid(child_pid); > if (tcgetpgrp(STDERR_FILENO) == child_pgrp) */ > tcsetpgrp(STDERR_FILENO, getpgrp()); > > su starts working again just fine. > > Any idea why getpgid fails and why tcgetpgrp return 100000 (always the same > number)? What will brak if i leave these lines commented? > > -- > Regards, > Artem file su.c, line 472 may be incorrect since line 456 is a while loop which only exits if child process is exited. just remove line 472 and 473 to see if problem is fixed. -- Artem