cd_client_connect_cb(): do not leak strings #14
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.
I was working on fixing leaks in darktable, and found this.
I have installed colord with this change into /usr/local, and verified that this fixes the LeakSanitizer complaint, makes darktable free of leaks in colord (or, at least i was not able to trigger others...) and does not seem to cause any side-effects (at least so far).
The reason is: client->priv is re-used several times, and cd_client_finalize()
is called only once at the end, so if cd_client_connect_cb() is called more
than once, it will re-duplicate those 3 strings, and the memory allocated
previously will leak.
Fixes several following LeakSanitizer-detected leaks like: