From: Konrad Lipinski Date: Thu, 29 Sep 2016 12:05:49 +0000 (+0200) Subject: kdbus: CONN_INFO positive return value fix X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=89d29ba5ee333b004614c35b955f117f7e84ff9c;p=platform%2Fkernel%2Flinux-exynos.git kdbus: CONN_INFO positive return value fix --- diff --git a/ipc/kdbus/bus.c b/ipc/kdbus/bus.c index f608a4794ca8..f526eb25f4c5 100644 --- a/ipc/kdbus/bus.c +++ b/ipc/kdbus/bus.c @@ -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))) diff --git a/ipc/kdbus/connection.c b/ipc/kdbus/connection.c index 60562018dcd7..6856154ea628 100644 --- a/ipc/kdbus/connection.c +++ b/ipc/kdbus/connection.c @@ -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); diff --git a/ipc/kdbus/endpoint.c b/ipc/kdbus/endpoint.c index 899c7ef21b8e..f12843b47246 100644 --- a/ipc/kdbus/endpoint.c +++ b/ipc/kdbus/endpoint.c @@ -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); diff --git a/ipc/kdbus/match.c b/ipc/kdbus/match.c index 0048ed7c03cb..7e035c69467a 100644 --- a/ipc/kdbus/match.c +++ b/ipc/kdbus/match.c @@ -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); diff --git a/ipc/kdbus/metadata.c b/ipc/kdbus/metadata.c index 95bf9f9e049c..340918085d04 100644 --- a/ipc/kdbus/metadata.c +++ b/ipc/kdbus/metadata.c @@ -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); diff --git a/ipc/kdbus/names.c b/ipc/kdbus/names.c index 3baff4976b9b..5ecc0be60452 100644 --- a/ipc/kdbus/names.c +++ b/ipc/kdbus/names.c @@ -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 */ diff --git a/ipc/kdbus/util.c b/ipc/kdbus/util.c index a7c0c428dafc..69e663267c3f 100644 --- a/ipc/kdbus/util.c +++ b/ipc/kdbus/util.c @@ -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;