From owner-freebsd-current Sat Apr 8 11:55:12 2000 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 6007C37B5CD for ; Sat, 8 Apr 2000 11:55:10 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id LAA11984; Sat, 8 Apr 2000 11:55:09 -0700 (PDT) (envelope-from dillon) Date: Sat, 8 Apr 2000 11:55:09 -0700 (PDT) From: Matthew Dillon Message-Id: <200004081855.LAA11984@apollo.backplane.com> To: freebsd-current@FreeBSD.ORG Subject: linux emulation problems - path length restrictions in linux_rename Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I just noticed that the reserved area of the user stack that the linux emulator uses to copy modified paths is only 256 bytes long. linux_rename() makes two calls to the path munging code, which means that the two path arguments are limited in aggregate to 256 bytes, which is wrong. I've also noted another major issue with the linux emulation, and that is with shell script execution. If you are running a linux binary which then fork/exec's a shell script, the interpreter path at the top of the shell script does not undergo the path munging code, which breaks the script out of the linux emulation mode (because it runs the FreeBSD /bin/sh, /bin/csh, etc instead of the linux version). I have a fix for the latter problem. It's fairly trivial. Without a fix the only way one can reliably run serious linux apps (like an oracle install for example) under linux emulation is to chroot into /compat/linux. I would appreciate a review: http://www.backplane.com/FreeBSD4/linux-script-01.diff (No, this fix alone isn't enough to do an oracle install, it's just too grungy a beast). -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message