security: gracefully handle RX pool exhaustion to prevent socket app deadlock #77
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.
Implement graceful degradation when PBUF_POOL approaches exhaustion to prevent
resource exhaustion attacks and application deadlock in socket-based applications.
When enabled via LIMIT_PAYLOAD_THRESHOLD_ENABLE, the TCP stack drops incoming
payload (while still ACKing) when buffer pool usage is critical, reserving 2
buffers for essential control messages (SYN, FIN). This ensures the stack can
always process connection state changes even under memory pressure, preventing
situations where socket applications hang due to inability to receive control
messages needed to free resources.
Only active with Socket/Netconn API where payload queuing can cause deadlock.
Requires MEMP_STATS enabled for runtime buffer tracking.