This two-step initialization of `strm->unique_id` looks like a refactoring
target. Add a comment to prevent regressions of the fix in
fb7b5c8a53cb4f19a223abd20660d47162aa8708.
---
src/stream.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/stream.c b/src/stream.c
index 40f9f75ae..0afa3059f 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -3102,6 +3102,9 @@ struct ist stream_generate_unique_id(struct stream *strm,
struct lf_expr *format
if ((unique_id = pool_alloc(pool_head_uniqueid)) == NULL)
return IST_NULL;
+ /* Initialize ->unique_id to an empty string to prevent infinite
+ * recursion when the <format> references %[unique-id] or %ID.
+ */
strm->unique_id = ist2(unique_id, 0);
strm->unique_id.len = build_logline(strm, unique_id,
UNIQUEID_LEN, format);
--
2.53.0