[exim-cvs] Debugging: avoid expansion problem with foolish-l…

Páxina inicial
Borrar esta mensaxe
Responder a esta mensaxe
Autor: Exim Git Commits Mailing List
Data:  
Para: exim-cvs
Asunto: [exim-cvs] Debugging: avoid expansion problem with foolish-length list output
Gitweb: https://git.exim.org/exim.git/commitdiff/0cd6e20a16a80f3f4c868a5161fc630523381ae6
Commit:     0cd6e20a16a80f3f4c868a5161fc630523381ae6
Parent:     73141a5abf8a3699249e401522fe9174b5aa8a1b
Author:     Jeremy Harris <jgh146exb@???>
AuthorDate: Thu Feb 18 21:17:40 2021 +0000
Committer:  Jeremy Harris <jgh146exb@???>
CommitDate: Thu Feb 18 21:17:40 2021 +0000


    Debugging: avoid expansion problem with foolish-length list output
---
 src/src/match.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)


diff --git a/src/src/match.c b/src/src/match.c
index 42145e9..5f6c1fb 100644
--- a/src/src/match.c
+++ b/src/src/match.c
@@ -498,8 +498,18 @@ else
}

/* For an unnamed list, use the expanded version in comments */
+#define LIST_LIMIT_PR 2048

-HDEBUG(D_any) if (!ot) ot = string_sprintf("%s in \"%s\"?", name, list);
+HDEBUG(D_any) if (!ot) 
+  {
+  int n, m;
+  gstring * g = string_fmt_append(NULL, "%s in \"%n%.*s%n\"",
+    name, &n, LIST_LIMIT_PR, list, &m);
+  if (m - n >= LIST_LIMIT_PR) g = string_catn(g, US"...", 3);
+  g = string_catn(g, US"?", 1);
+  gstring_release_unused(g);
+  ot = string_from_gstring(g);
+  }


 /* Now scan the list and process each item in turn, until one of them matches,
 or we hit an error. */
@@ -705,7 +715,7 @@ while ((sss = string_nextinlist(&list, &sep, NULL, 0)))
       if ((bits & (-bits)) == bits)    /* Only one of the two bits is set */
         {
         HDEBUG(D_lists) debug_printf("%s %s (matched \"%s\"%s)\n", ot,
-          (yield == OK)? "yes" : "no", sss, cached);
+          yield == OK ? "yes" : "no", sss, cached);
         return yield;
         }
       }