connection: kdbus_cmd_msg_recv(): fix use after free
authorDaniel Mack <zonque@gmail.com>
Fri, 21 Mar 2014 12:56:42 +0000 (13:56 +0100)
committerDaniel Mack <zonque@gmail.com>
Fri, 21 Mar 2014 12:56:42 +0000 (13:56 +0100)
connection.c

index b2a563475dfd6d117a657cd3179c529ed9bc32ff..49286eb917792b21b4a6b00401f8cb8c972f2bcd 100644 (file)
@@ -1047,11 +1047,13 @@ int kdbus_cmd_msg_recv(struct kdbus_conn *conn,
 
                kdbus_conn_queue_remove(conn, queue);
                kdbus_pool_free_range(conn->pool, queue->off);
-               kdbus_conn_queue_cleanup(queue);
                mutex_unlock(&conn->lock);
 
                if (reply)
                        kdbus_conn_reply_free(reply);
+
+               kdbus_conn_queue_cleanup(queue);
+
                goto exit;
        }