This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

execvp regression in glibc 2.3.5?


Reducing stack usage in exec*() functions, particularly this change:

http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/posix/execvp.c.diff?cvsroot=glibc&r1=1.21&r2=1.22

and its backport to glibc-2_3-branch:

http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/posix/execvp.c.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.21&r2=1.21.2.1

changed execvp() behaviour on shell scripts without #!/bin/sh header:
when such script is found in $PATH and trying to execve() it returns
ENOEXEC, /bin/sh is run with only script name, not full path as first
argument (as it used to be in glibc <= 2.3.4).
bash still can execute such script (finding it in $PATH), but e.g. pdksh
displays:
"/bin/sh: script-name: No such file or directory".

As this change isn't mentioned in ChangeLog, I think it wasn't
intentional (and looks like "copy-pasto").
Attached patch restores previous (i.e. glibc <= 2.3.4) behaviour.


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/

Attachment: glibc-execvp.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]