close 282762 3.0-15
thanks
Chet Ramey writes:
> > Package: bash
> > Version: 3.0-10
> > Severity: normal
> >
> >
> > Trying to run a DOS-formatted script with a shebang notation results in
> > the error message ": bad interpreter: No such file or directory"
> >
> > This occurs specifically when the CR+LF immediately follows the
> > interpreter command:
> >
> > #!/bin/sh[cr+lf]
> >
> > Bash should either read this line correctly or print out a more useful
> > error message.
>
> Bash is simply printing the name of the interpreter (/bin/sh^M). The
> trailing carriage return causes the rest of the message to overwrite the
> `/bin/sh'.
The Debian version has a patch since 3.0-15 to make it more user
friendly, closing the report.
--- bash/execute_cmd.c~ 2005-01-22 23:14:33.000000000 +0100
+++ bash/execute_cmd.c 2005-01-23 20:16:58.000000000 +0100
@@ -3858,11 +3858,21 @@
if (sample_len > 2 && sample[0] == '#' && sample[1] == '!')
{
char *interp;
+ int interp_length;
+ char *interp_printable = NULL;
interp = getinterp (sample, sample_len, (int *)NULL);
+ interp_length = strlen(interp);
+ if (interp[interp_length-1] == '\r') {
+ interp_printable = (char *)xmalloc (interp_length + 2);
+ strncpy (interp_printable, interp, interp_length - 1);
+ strcpy (interp_printable + interp_length - 1, "^M");
+ }
errno = i;
- sys_error (_("%s: %s: bad interpreter"), command, interp ? interp
: "");
+ sys_error (_("%s: %s: bad interpreter"), command,
+ interp_printable ? interp_printable : interp ? interp
: "");
FREE (interp);
+ FREE (interp_printable);
return (EX_NOEXEC);
}
#endif
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]