bug-bash
[Top][All Lists]
Advanced

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

Incorrect string length check


From: Collin Funk
Subject: Incorrect string length check
Date: Thu, 23 May 2024 18:55:10 -0700
User-agent: Mozilla Thunderbird

Hi Chet,

In this commit in the devel branch:

commit 03c8c43b79177fa678714893e9f05b1c517592c0
Author: Chet Ramey <chet.ramey@case.edu>
Date:   Fri Apr 5 09:03:52 2024 -0400

    man page typesetting updates for compatibilityand layout issues

I think there was a typo in execute_cmd.c:

diff --git a/execute_cmd.c b/execute_cmd.c
[...]
 void
 coproc_setvars (struct coproc *cp)
 {
@@ -6072,14 +6073,14 @@ shell_execve (char *command, char **args, char **env)
              interp = getinterp (sample, sample_len, (int *)NULL);
              ilen = strlen (interp);
              errno = i;
-             if (interp[ilen - 1] == '\r')
+             if (interp > 0 && interp[ilen - 1] == '\r')
                {
                  interp = xrealloc (interp, ilen + 2);
                  interp[ilen - 1] = '^';
                  interp[ilen] = 'M';
                  interp[ilen + 1] = '\0';
                }

Shouldn't that condition be something like this:

    if (ilen > 0 && interp[ilen - 1] == '\r')
      {
        /* Rest of code.  */
      }

Since you want to protect against an '#!' without an interpreter
following it. I'm thinking it was just a typo but feel free to correct
me if I am missing something.

Thanks,
Collin



reply via email to

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