handle: don't leak endpoint when KDBUS_HANDLE_EP_OWNER handle is released
authorTom Gundersen <teg@jklm.no>
Tue, 30 Sep 2014 15:41:06 +0000 (17:41 +0200)
committerTom Gundersen <teg@jklm.no>
Tue, 30 Sep 2014 21:54:29 +0000 (23:54 +0200)
Signed-off-by: Tom Gundersen <teg@jklm.no>
handle.c

index bae496e83646c19facaa4cd87774e194e9df0d2c..6b30981e143a57334a9d1468042ec3f583ef0f3c 100644 (file)
--- a/handle.c
+++ b/handle.c
@@ -182,10 +182,6 @@ static int kdbus_handle_release(struct inode *inode, struct file *file)
        case KDBUS_HANDLE_EP_CONNECTED:
                kdbus_conn_disconnect(handle->conn, false);
                kdbus_conn_unref(handle->conn);
-               /* fall through */
-
-       case KDBUS_HANDLE_EP:
-               kdbus_ep_unref(handle->ep);
                break;
 
        default:
@@ -194,6 +190,7 @@ static int kdbus_handle_release(struct inode *inode, struct file *file)
 
        kdbus_meta_free(handle->meta);
        kdbus_domain_unref(handle->domain);
+       kdbus_ep_unref(handle->ep);
        kfree(handle);
 
        return 0;