Fixing memory allocation error in ngx_rtmp_live_join()#1781
Open
Fahnenfluchtige wants to merge 1 commit intoarut:masterfrom
Open
Fixing memory allocation error in ngx_rtmp_live_join()#1781Fahnenfluchtige wants to merge 1 commit intoarut:masterfrom
Fahnenfluchtige wants to merge 1 commit intoarut:masterfrom
Conversation
winshining
reviewed
Apr 19, 2025
| ngx_log_error(NGX_LOG_ERR, s->connection->log, 0, | ||
| "live: failed to allocate memory for context"); | ||
|
|
||
| ngx_rtmp_send_status(s, "NetStream.Play.Failed", "error", |
There was a problem hiding this comment.
Not only Play, Publish also calls this function, so it should be:
if (publisher) {
ngx_rtmp_send_status(s, "NetStream.Publish.Failed", "error",
"Failed to allocate memory");
} else {
ngx_rtmp_send_status(s, "NetStream.Play.Failed", "error",
"Failed to allocate memory");
}
I will merge into my own fork :)
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.
The Svace static analysis tool identified a potential issue in the function
ngx_rtmp_live_join(), where the return value ofngx_palloc()is used without NULL-checking (506-510):ngx_palloc()is guaranteed not to return NULL only if there is enough space available in at least one of the existing memory pools in the linked list (see the implementation ofngx_palloc_small()). However, this guarantee is not absolute. If there is no available space, memory allocation will proceed by callingngx_palloc_block(), which then invokesngx_memalign()orposix_memalign()/memalign()to allocate memory. These system calls can return NULL if allocation fails. Therefore, it is always recommended to check the return value ofngx_palloc()and similar functions before using the allocated memory.So it's necessary to add NULL-checking: