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.
What type of PR is this?
fix
Check the PR title.
(Optional) Translate the PR title into Chinese.
修复当使用 ResponseHeader.Set/Add 设置 Trailer 时,有可能会 panic 的问题
(Optional) More detailed description for this PR(en: English/zh: Chinese).
en:
ResponseHeader.Set/Add
method usesbytesconv.S2b
method to reduce string copying, whileSetTrailer
modifies data in place usingutils.NormalizeHeaderKey
. However, if the string used for setting the header comes from RODATA, it can cause a segmentation fault.Solution: make a copy of the header value when calling SetTrailer, to avoid modifying the data in place.
zh(optional):
ResponseHeader.Set/Add
使用了bytesconv.S2b
方法来减少 string 的拷贝,而SetTrailer
会使用utils.NormalizeHeaderKey
来原地修改数据,这是如果设置 Header 使用的 string 来自 RODATA,那么会造成段错误解决方案:在 SetTrailer 时拷贝一次 header value
(Optional) Which issue(s) this PR fixes:
(Optional) The PR that updates user documentation: