From owner-freebsd-current@FreeBSD.ORG Sun Apr 10 22:09:19 2005 Return-Path: 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 14FA416A4CE for ; Sun, 10 Apr 2005 22:09:19 +0000 (GMT) Received: from mail-out.iptelecom.net.ua (mail-out.iptelecom.net.ua [212.9.224.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 263A243D41 for ; Sun, 10 Apr 2005 22:09:18 +0000 (GMT) (envelope-from vkushnir@i.kiev.ua) Received: from h219.241.159.dialup.iptcom.net ([213.159.241.219]:52223 "EHLO kushnir1.kiev.ua" ident: "NO-IDENT-SERVICE[2]" whoson: "vkushnir") by pechkin.iptelecom.net.ua with ESMTP id S360661AbVDJWJQ (INRCPT ); Mon, 11 Apr 2005 01:09:16 +0300 Received: from kushnir1.kiev.ua (kushnir1.kiev.ua [10.0.0.1]) by kushnir1.kiev.ua (8.13.3/8.13.3) with ESMTP id j3AM9DFn003966 for ; Mon, 11 Apr 2005 01:09:13 +0300 (EEST) (envelope-from vkushnir@i.kiev.ua) Date: Mon, 11 Apr 2005 01:09:13 +0300 (EEST) From: Vladimir Kushnir X-X-Sender: vkushnir@kushnir1.kiev.ua To: current@freebsd.org Message-ID: <20050411004706.I2914@kushnir1.kiev.ua> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Subject: -CURRENT and ptsname() again X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 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: Sun, 10 Apr 2005 22:09:19 -0000 Hello, It definitely looks like posix_openpt (perhaps) and ptsname/grantpt (most probably) do not work as they should under -CURRENT. Examples: mc (misc/mc) reports: subshell.c: couldn't open master side of pty pty_open_master: Permission denied KDE (at least CVS, but it's pty handling did not change recently) complaints about chown The simplest example: #include #include #include #include #include main() { int pty_master; char *master_name, *slave_name; struct stat sb; pty_master = posix_openpt(O_RDWR | O_NOCTTY); fstat(pty_master, &sb); if (grantpt (pty_master) < 0) { printf("Fail: grantpt\n"); } if (unlockpt (pty_master) < 0) { printf("Fail: unlocktpt\n"); } master_name = devname(sb.st_rdev, S_IFCHR); slave_name = ptsname (pty_master); printf("Open master: /dev/%s, slave: %s\n", master_name, slave_name); close (pty_master); return 0; } gives an absurd output: ~> ./ptytest Fail: grantpt Open master: /dev/ptyp0, slave: /dev/ttysu ^^^^^^^^^^ grantpt() here also fails. This is fairly recent -CURRENT: FreeBSD kushnir1.kiev.ua 6.0-CURRENT FreeBSD 6.0-CURRENT #6: Sat Apr 9 23:17:34 EEST 2005 root@:/usr/obj/usr/src/sys/KUSHNIR i386 Sorry, cannot fix it myself Redards, Vladimir