[systemd-devel] [PATCH 12/12] connection: when freeing a connection purge its cached entries
When freeing a connection remove also all the cached entries related to this connection, otherwise if we access this cached entry through another valid connection, we will hit memory corruption bugs. Signed-off-by: Djalal Harouni tix...@opendz.org --- connection.c | 4 +++- domain.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/connection.c b/connection.c index 542f677..6566117 100644 --- a/connection.c +++ b/connection.c @@ -1545,8 +1545,10 @@ static void __kdbus_conn_free(struct kref *kref) if (conn-ep-policy_db) kdbus_policy_remove_conn(conn-ep-policy_db, conn); - if (conn-bus-policy_db) + if (conn-bus-policy_db) { + kdbus_policy_remove_conn(conn-bus-policy_db, conn); kdbus_policy_remove_owner(conn-bus-policy_db, conn); + } kdbus_meta_free(conn-owner_meta); kdbus_match_db_free(conn-match_db); diff --git a/domain.h b/domain.h index 91a7d5e..9c477db 100644 --- a/domain.h +++ b/domain.h @@ -71,7 +71,7 @@ struct kdbus_domain { /** * struct kdbus_domain_user - resource accounting for users * @kref: Reference counter - * @domain:Domain of the user + * @domain:Domain of the user * @hentry:Entry in domain user map * @idr: Smalles possible index number of all users * @uid: UID of the user -- 1.9.0 ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Re: [systemd-devel] [PATCH 12/12] connection: when freeing a connection purge its cached entries
On 06/20/2014 06:50 PM, Djalal Harouni wrote: When freeing a connection remove also all the cached entries related to this connection, otherwise if we access this cached entry through another valid connection, we will hit memory corruption bugs. Applied, thanks. Daniel Signed-off-by: Djalal Harouni tix...@opendz.org --- connection.c | 4 +++- domain.h | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/connection.c b/connection.c index 542f677..6566117 100644 --- a/connection.c +++ b/connection.c @@ -1545,8 +1545,10 @@ static void __kdbus_conn_free(struct kref *kref) if (conn-ep-policy_db) kdbus_policy_remove_conn(conn-ep-policy_db, conn); - if (conn-bus-policy_db) + if (conn-bus-policy_db) { + kdbus_policy_remove_conn(conn-bus-policy_db, conn); kdbus_policy_remove_owner(conn-bus-policy_db, conn); + } kdbus_meta_free(conn-owner_meta); kdbus_match_db_free(conn-match_db); diff --git a/domain.h b/domain.h index 91a7d5e..9c477db 100644 --- a/domain.h +++ b/domain.h @@ -71,7 +71,7 @@ struct kdbus_domain { /** * struct kdbus_domain_user - resource accounting for users * @kref:Reference counter - * @domain: Domain of the user + * @domain: Domain of the user * @hentry: Entry in domain user map * @idr: Smalles possible index number of all users * @uid: UID of the user ___ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel