kdbus_pool_free(conn->pool);
kdbus_ep_unref(conn->ep);
kdbus_bus_unref(conn->bus);
+ put_cred(conn->cred);
kfree(conn->name);
kfree(conn);
}
INIT_LIST_HEAD(&conn->reply_list);
atomic_set(&conn->reply_count, 0);
INIT_DELAYED_WORK(&conn->work, kdbus_conn_work);
- conn->cred = current_cred();
+ conn->cred = get_current_cred();
init_waitqueue_head(&conn->wait);
/* init entry, so we can unconditionally remove it */
ret = kdbus_pool_new(conn->name, &conn->pool, hello->pool_size);
if (ret < 0)
- goto exit_free_conn;
+ goto exit_unref_cred;
ret = kdbus_match_db_new(&conn->match_db);
if (ret < 0)
kdbus_match_db_free(conn->match_db);
exit_free_pool:
kdbus_pool_free(conn->pool);
+exit_unref_cred:
+ put_cred(conn->cred);
exit_free_conn:
kfree(conn->name);
kfree(conn);