kdbus_reply_unlink() potentially destroys the reply, so keep an
extra reference while working with it. Drop the reference after
we're done.
Signed-off-by: Daniel Mack <daniel@zonque.org>
/* just drop the message */
if (recv->flags & KDBUS_RECV_DROP) {
- struct kdbus_reply *reply = entry->reply;
+ struct kdbus_reply *reply = kdbus_reply_ref(entry->reply);
kdbus_queue_entry_remove(conn, entry);
kdbus_pool_slice_release(entry->slice);
kdbus_notify_flush(conn->ep->bus);
kdbus_queue_entry_free(entry);
+ kdbus_reply_unref(reply);
return 0;
}