[systemd-devel] [PATCH] connection: fix kernel oop when conn_name not set

Jacek Janczyk j.janczyk at samsung.com
Mon May 12 06:24:32 PDT 2014


kernel oops when connection name (kdbus_conn.name) not set via HELLO
message but requested with attach flags KDBUS_ATTACH_CONN_NAME.

As conn.name is defined as "for debug purposes" I find it more
convenient to return generic name than to strip the field from
requested metadata or raise an error on request.

Signed-off-by: Jacek Janczyk <j.janczyk at samsung.com>
---
 connection.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/connection.c b/connection.c
index 40cf133..5ae9d99 100644
--- a/connection.c
+++ b/connection.c
@@ -1941,12 +1941,10 @@ int kdbus_conn_new(struct kdbus_ep *ep,
 			goto exit_free_conn;
 	}
 
-	if (conn_name) {
-		conn->name = kstrdup(conn_name, GFP_KERNEL);
-		if (!conn->name) {
-			ret = -ENOMEM;
-			goto exit_free_conn;
-		}
+	conn->name = kstrdup(conn_name ? conn_name : "UNDEFINED", GFP_KERNEL);
+	if (!conn->name) {
+		ret = -ENOMEM;
+		goto exit_free_conn;
 	}
 
 	kref_init(&conn->kref);
-- 
1.7.9.5



More information about the systemd-devel mailing list