RE: binfmt_script and ^M

From: Heusden, Folkert van (f.v.heusden@ftr.nl)
Date: Tue Feb 27 2001 - 08:42:17 EST


> When running a script (perl in this case) that has DOS-style newlines
> (\r\n), Linux 2.4.2 can't find an interpreter because it doesn't
> recognize the \r. The following patch should fix this (untested).

_should_ it work with the \r in it?

There might be a problem with your patch: at the '*)': if the '\n' is the
first character on the line, the cp-1 (which should be *(cp-1) I think)
would point before the buffer which can be un-allocated memory.

--- binfmt_script.c~ Mon Feb 26 17:42:09 2001
+++ binfmt_script.c Tue Feb 27 13:39:47 2001
@@ -36,6 +36,8 @@
         bprm->buf[BINPRM_BUF_SIZE - 1] = '\0';
         if ((cp = strchr(bprm->buf, '\n')) == NULL)
                 cp = bprm->buf+BINPRM_BUF_SIZE-1;
+ if (cp - 1 == '\r') <------- *)
+ cp--;
         *cp = '\0';
         while (cp > bprm->buf) {
                 cp--;

Greetings,
Folkert van Heusden
[ www.vanheusden.com ]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Feb 28 2001 - 21:00:14 EST