bolts: Fix shmem leak when Drop-ing CommonUnixShMem #1484
Merged
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.
Improved
CommonUnixShMem
implementation:In the current implementation, the
new
function allocates new shared memory usingshmctl(IPC_PRIVATE, size, IPC_CREAT)
and attaches it to the current process withshmat(id, NULL, 0)
. However, when it comes time todrop
this shared memory, it merely releases the shared memory object withshmctl(id, IPC_RMID, NULL)
. Unfortunately, this approach leaves the mounted shared memory lingering in the current process's memory space. Even worse, the shared memory won't deallocate from the system until the current process ends.This pull request addresses this issue by implementing a solution to properly deallocate the shared memory, ensuring that it is no longer present in the process's memory space and is also released from the system resources when no longer needed.