bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hash-bang line length


From: Greg Wooledge
Subject: Re: Hash-bang line length
Date: Wed, 13 Jan 2016 11:39:17 -0500
User-agent: Mutt/1.4.2.3i

On Wed, Jan 13, 2016 at 11:23:34AM -0500, Chet Ramey wrote:
> On 1/13/16 9:04 AM, Greg Wooledge wrote:
> > On Wed, Jan 13, 2016 at 02:52:08PM +0100, Ludovic Courtès wrote:
> >> Sure, but the fact that it???s smaller than that of the kernel Linux is
> >> problematic: when a hash-bang line > 127 chars is encountered, ???execve???
> >> fails with ENOENT, so Bash???s fallback code is executed, fails as well,
> >> but it prints a misleading error message with an even more truncated
> >> hash-bang line.
> > 
> > Let's suppose bash is changed to read a shebang line of unlimited length.
> > In your scenario, the script with the 150 character shebang fails at the
> > kernel level with ENOENT, so bash's fallback code runs, and the script
> > is executed by a new instance of bash.
> 
> No, it isn't.  The execve fails with ENOENT, so bash just prints an error
> message containing the interpreter name, which Ludo is reporting is
> truncated.

Ah.  You're right, and I should have double-checked Ludo's understanding
of the code before responding.  I assumed Ludo's assertion was correct,
but it's not.

The "fallback code" is only executed when execve() fails with ENOEXEC.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]