kdbus: CONN_INFO positive return value fix
authorKonrad Lipinski <konrad.l@samsung.com>
Thu, 29 Sep 2016 12:05:49 +0000 (14:05 +0200)
committerAdrian Szyndela <adrian.s@samsung.com>
Wed, 7 Aug 2019 14:19:04 +0000 (16:19 +0200)
ipc/kdbus/bus.c
ipc/kdbus/connection.c
ipc/kdbus/endpoint.c
ipc/kdbus/match.c
ipc/kdbus/metadata.c
ipc/kdbus/names.c
ipc/kdbus/util.c

index f608a4794ca8358db25c80b8a75affa3d0df1dc2..f526eb25f4c56ba482f1fe6bfa4cdc3490a3a870 100644 (file)
@@ -442,8 +442,7 @@ int kdbus_cmd_bus_creator_info(struct kdbus_conn *conn, void __user *argp)
        struct kdbus_args args = {
        };
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        if ((ret = kdbus_sanitize_attach_flags(cmd->attach_flags, &attach_flags)))
index 60562018dcd776bb4b434958a9a8294b1efa07c1..6856154ea628c3d52ebf2c80d152056e7514678a 100644 (file)
@@ -1755,8 +1755,7 @@ int kdbus_cmd_conn_info(struct kdbus_conn *conn, void __user *argp)
        };
        struct kdbus_meta_stack meta_stack;
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        /* registry must be held throughout lookup *and* collecting data */
@@ -1773,7 +1772,7 @@ int kdbus_cmd_conn_info(struct kdbus_conn *conn, void __user *argp)
                        owner = kdbus_name_get_owner(entry);
                if (!owner ||
                    !kdbus_conn_policy_see_name(conn, current_cred(), name) ||
-                   (cmd->id != 0 && owner->conn->id != cmd->id)) {
+                   (cmd->id && owner->conn->id != cmd->id)) {
                        /* pretend a name doesn't exist if you cannot see it */
                        ret = -ESRCH;
                        goto exit;
@@ -1829,8 +1828,11 @@ int kdbus_cmd_conn_info(struct kdbus_conn *conn, void __user *argp)
                }
                if (attach_flags & KDBUS_ATTACH_AUXGROUPS) /* not fake */
                        kdbus_meta_payload_collect_auxgroups_preallocated(meta_payload, &owner_conn->meta.meta, conn);
-               if (attach_flags & KDBUS_ATTACH_NAMES && 0 > (ret = kdbus_meta_payload_collect_names(&meta_payload, owner_conn)))
-                       goto exit;
+               if (attach_flags & KDBUS_ATTACH_NAMES) {
+                       if (0 > (ret = kdbus_meta_payload_collect_names(&meta_payload, owner_conn)))
+                               goto exit;
+                       ret = 0;
+               }
                pay_size = kdbus_meta_payload_size(meta_payload);
                kdbus_assert(!(pay_size % 8));
                kdbus_kvec_set(&kvec[cnt++], kdbus_meta_payload_ptr(meta_payload), pay_size);
@@ -1895,8 +1897,7 @@ int kdbus_cmd_update(struct kdbus_conn *conn, void __user *argp)
                .argc = ARRAY_SIZE(argv),
        };
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        item_attach_send = argv[0].item ? &argv[0].item->data64[0] : NULL;
@@ -2091,8 +2092,7 @@ int kdbus_cmd_recv(struct kdbus_conn *conn, void __user *argp)
            !kdbus_conn_is_activator(conn))
                return -EOPNOTSUPP;
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        cmd->dropped_msgs = 0;
@@ -2204,8 +2204,7 @@ int kdbus_cmd_free(struct kdbus_conn *conn, void __user *argp)
            !kdbus_conn_is_activator(conn))
                return -EOPNOTSUPP;
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        ret = kdbus_pool_release_offset(&conn->pool, cmd->offset);
index 899c7ef21b8ed714aabafbc0687aa4f53491c084..f12843b472468a1848b8410da4109d8931c320c7 100644 (file)
@@ -281,8 +281,7 @@ int kdbus_cmd_ep_update(struct kdbus_ep *ep, void __user *argp)
                .argc = ARRAY_SIZE(argv),
        };
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        ret = kdbus_policy_set(&ep->policy_db, args.items, args.items_size, 0, true, ep);
index 0048ed7c03cb0b2aa7eb6834eb3245b038844992..7e035c69467afb9064b75cb2deb27d369b21d3a9 100644 (file)
@@ -416,8 +416,7 @@ int kdbus_cmd_match_add(struct kdbus_conn *conn, void __user *argp)
        if (!kdbus_conn_is_ordinary(conn))
                return -EOPNOTSUPP;
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        items_size = KDBUS_ITEMS_SIZE(cmd, items);
@@ -723,8 +722,7 @@ int kdbus_cmd_match_remove(struct kdbus_conn *conn, void __user *argp)
        if (!kdbus_conn_is_ordinary(conn))
                return -EOPNOTSUPP;
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        down_write(&conn->match_db.mdb_rwlock);
index 95bf9f9e049c560d77fcdcda464afedd081810ca..340918085d0451dc3984b4ec66d8926782c995bc 100644 (file)
@@ -273,9 +273,9 @@ int kdbus_dst_sensitive_meta_fake_collect(struct kdbus_dst_sensitive_meta_fake *
                meta->common.tgid = get_pid(find_vpid(pids->pid));
                meta->common.ppid = get_pid(find_vpid(pids->ppid));
 
-               if ((pids->tid != 0 && !meta->common.pid) ||
-                   (pids->pid != 0 && !meta->common.tgid) ||
-                   (pids->ppid != 0 && !meta->common.ppid)) {
+               if ((pids->tid && !meta->common.pid) ||
+                   (pids->pid && !meta->common.tgid) ||
+                   (pids->ppid && !meta->common.ppid)) {
                        put_pid(meta->common.pid);
                        put_pid(meta->common.tgid);
                        put_pid(meta->common.ppid);
index 3baff4976b9b04d61f6429fd50cd5971a93ba523..5ecc0be6045270aa8ba85fcf327829fd698dfad4 100644 (file)
@@ -610,8 +610,7 @@ int kdbus_cmd_name_release(struct kdbus_conn *conn, void __user *argp)
        if (!kdbus_conn_is_ordinary(conn))
                return -EOPNOTSUPP;
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        ret = kdbus_name_release(&conn->ep->bus->name_registry, conn,
@@ -740,8 +739,7 @@ int kdbus_cmd_list(struct kdbus_conn *conn, void __user *argp)
                                 KDBUS_LIST_QUEUED,
        };
 
-       ret = kdbus_args_parse(&args, argp, &cmd);
-       if (ret != 0)
+       if ((ret = kdbus_args_parse(&args, argp, &cmd)))
                return ret;
 
        /* lock order: domain -> bus -> ep -> names -> conn */
index a7c0c428dafc90ad0b55ce37181d2f74e4f13a77..69e663267c3f6562412888345109ebeb8d94d753 100644 (file)
@@ -80,7 +80,7 @@ int kdbus_verify_uid_prefix(const char *name, struct user_namespace *user_ns,
                return -EINVAL;
 
        snprintf(prefix, sizeof(prefix), "%u-", uid);
-       if (strncmp(name, prefix, strlen(prefix)) != 0)
+       if (strncmp(name, prefix, strlen(prefix)))
                return -EINVAL;
 
        return 0;