From: Bastien Nocera <hadess@hadess.net>
To: linux-bluetooth@vger.kernel.org
Subject: [BlueZ 2/2] mpris-proxy: Avoid session->obex dereference
Date: Tue, 5 May 2026 09:29:25 +0200 [thread overview]
Message-ID: <20260505072958.2424004-2-hadess@hadess.net> (raw)
In-Reply-To: <20260505072958.2424004-1-hadess@hadess.net>
Protect against trying to access session->obex variable that might be
null after failure to create the session object.
---
tools/mpris-proxy.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tools/mpris-proxy.c b/tools/mpris-proxy.c
index 360b8ab34469..8c9b01044fe2 100644
--- a/tools/mpris-proxy.c
+++ b/tools/mpris-proxy.c
@@ -1306,7 +1306,7 @@ static int parse_track_entry(DBusMessageIter *entry, const char *key,
const char *handle, *path;
char *filename, *uri;
- if (!player || !player->obex)
+ if (!player || !player->obex || !player->obex->obex)
return -EINVAL;
path = g_dbus_proxy_get_path(player->obex->obex);
@@ -2614,9 +2614,13 @@ static void obex_get_image(struct player *player, const char *handle)
DBusMessage *msg;
DBusMessageIter iter, array;
struct obex_session *obex_session = player->obex;
- const char *path = g_dbus_proxy_get_path(obex_session->obex);
+ const char *path;
char *filename;
+ if (!player->obex)
+ return;
+
+ path = g_dbus_proxy_get_path(obex_session->obex);
player->filename = g_strconcat(g_get_tmp_dir(), "/",
path + strlen(BLUEZ_OBEX_CLIENT_PATH "/"),
"-", handle, NULL);
@@ -2674,7 +2678,7 @@ static void device_property_changed(GDBusProxy *proxy, const char *name,
player->obex = NULL;
}
- g_dbus_proxy_unref(session->obex);
+ g_clear_pointer(&session->obex, g_dbus_proxy_unref);
g_dbus_proxy_unref(session->device);
obex_sessions = g_slist_remove(obex_sessions, session);
g_free(session);
--
2.54.0
next prev parent reply other threads:[~2026-05-05 7:54 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 7:29 [BlueZ 1/2] mpris-proxy: Fix possible crash Bastien Nocera
2026-05-05 7:29 ` Bastien Nocera [this message]
2026-05-05 9:18 ` [BlueZ,1/2] " bluez.test.bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260505072958.2424004-2-hadess@hadess.net \
--to=hadess@hadess.net \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox