Fixing memory allocation error in ngx_rtmp_live_join() #1781
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: