[systemd-devel] [PATCH 12/12] connection: when freeing a connection purge its cached entries

2014-06-20 Thread Djalal Harouni
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

2014-06-20 Thread Daniel Mack
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