Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@thevilledev
Copy link

@thevilledev thevilledev commented Sep 19, 2025

Continues from #8 after I did some testing.

A single maxSnippetExpansions of 1000 could be too low for some real world scenarios. Snippet-based configuration can be used broadly across large CoreDNS Corefiles. We cannot implement a pure “import depth” integer with the current splice-then-continue parser - simply because imports are expanded by lexing and splicing tokens into the stream, not by recursive function calls.

Instead, we introduce high default per-directive caps for snippet and file imports, keeping globs counted as one. Prevent trivial snippet self-import. Add tests that lower caps to validate failure on cycles and success with large glob imports.

This should present a generous enough middleground, instead of rewriting the parser.

cc: @miekg @yongtang

A single maxSnippetExpansions of 1000 could be too low for some real
world scenarios. Snippet-based configuration can be used broadly
across large CoreDNS Corefiles. We cannot implement a pure
“import depth” integer with the current splice-then-continue parser
because imports are expanded by lexing and splicing tokens into the
stream, not by recursive function calls.

Instead, we introduce high default per-directive caps for snippet and
file imports, keeping globs counted as one. Prevent trivial snippet
self-import. Add tests that lower caps to validate failure on
cycles and success with large glob imports.

This should present a good enough middleground, instead of rewriting
the parser.

Signed-off-by: Ville Vesilehto <[email protected]>
@yongtang yongtang merged commit 543b91b into coredns:master Sep 20, 2025
1 check passed
jdamick pushed a commit to jdamick/caddy that referenced this pull request Sep 25, 2025
A single maxSnippetExpansions of 1000 could be too low for some real
world scenarios. Snippet-based configuration can be used broadly
across large CoreDNS Corefiles. We cannot implement a pure
“import depth” integer with the current splice-then-continue parser
because imports are expanded by lexing and splicing tokens into the
stream, not by recursive function calls.

Instead, we introduce high default per-directive caps for snippet and
file imports, keeping globs counted as one. Prevent trivial snippet
self-import. Add tests that lower caps to validate failure on
cycles and success with large glob imports.

This should present a good enough middleground, instead of rewriting
the parser.

Signed-off-by: Ville Vesilehto <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants