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.janc...@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

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to