git://git.exim.org
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
73141a5
)
Debugging: avoid expansion problem with foolish-length list output
author
Jeremy Harris
<jgh146exb@wizmail.org>
Thu, 18 Feb 2021 21:17:40 +0000
(21:17 +0000)
committer
Jeremy Harris
<jgh146exb@wizmail.org>
Thu, 18 Feb 2021 21:17:40 +0000
(21:17 +0000)
src/src/match.c
patch
|
blob
|
history
diff --git
a/src/src/match.c
b/src/src/match.c
index 42145e98ee4c5786be178bd1fb8ed13a12711a93..5f6c1fb01c04f9c7c21c35d59a3589903654a854 100644
(file)
--- 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 */
}
/* 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. */
/* 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,
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;
}
}
return yield;
}
}