emacs-diffs
[Top][All Lists]
Advanced

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

master bdfd83e: Fix an off-by-one error in TEX parsing in etags


From: Lars Ingebrigtsen
Subject: master bdfd83e: Fix an off-by-one error in TEX parsing in etags
Date: Sun, 12 Dec 2021 05:26:33 -0500 (EST)

branch: master
commit bdfd83e42d0044db7e99cec452427c0b76d46f20
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix an off-by-one error in TEX parsing in etags
    
    * lib-src/etags.c (TEX_decode_env): Fix off-by-one parsing of
    TEXTAGS environment variable (bug#52438).  Based on a patch by
    David Fussner <dfussner@googlemail.com> and amended by Andreas
    Schwab <schwab@linux-m68k.org>.
---
 lib-src/etags.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/lib-src/etags.c b/lib-src/etags.c
index bd4d4fc..af142b0 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -5773,7 +5773,7 @@ static void
 TEX_decode_env (const char *evarname, const char *defenv)
 {
   const char *env, *p;
-  ptrdiff_t len;
+  ptrdiff_t len = 1;
 
   /* Append default string to environment. */
   env = getenv (evarname);
@@ -5782,8 +5782,13 @@ TEX_decode_env (const char *evarname, const char *defenv)
   else
     env = concat (env, defenv, "");
 
+  /* If the environment variable starts with a colon, increase the
+     length of the token table.  */
+  if (*env == ':')
+    len++;
+
   /* Allocate a token table */
-  for (len = 1, p = env; (p = strchr (p, ':')); )
+  for (p = env; (p = strchr (p, ':')); )
     if (*++p)
       len++;
   TEX_toktab = xnew (len, linebuffer);



reply via email to

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