Fix 502 Bad Gateway caused by print() in LuCI template#14075
Open
lushangkan wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The template renders the wireless profile into a
<textarea>using Lua'sprint():print()writes to stdout instead of the LuCI template output stream. On recent LuCI/uCode based systems, this corrupts the CGI response and causes:Reason
Older LuCI environments tolerated or redirected
print()differently, but recent LuCI/uCode based systems expose this issue becauseprint()writes to the CGI stdout instead of the template output stream.Steps to reproduce:
Cause:
Lua
print()is used inside a LuCI template, which writes to stdout and breaks the HTTP response.Fix
Instead of printing each line with
print(), read the file into a string and render it using LuCI template output (<%= ... %>). This avoids writing directly to stdout and is compatible with both legacy and current LuCI implementations.