Messages in this thread Patch in this message | | | From | David Herrmann <> | Subject | [PATCH v2 2/6] kdbus: drop redundant KDBUS_MSG_MAX_ITEMS | Date | Sat, 4 Jul 2015 13:22:47 +0200 |
| |
We already limit the size of the message object, there's no reason to add an arbitrary additional limit on the number of items. We don't do this for other item-arrays, so lets stop restricting the messages in this way.
Signed-off-by: David Herrmann <dh.herrmann@gmail.com> --- v2: - drop redundant "n = 0" assignment - rename 'n' to 'n_res'
ipc/kdbus/limits.h | 3 --- ipc/kdbus/message.c | 12 ++++-------- 2 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/ipc/kdbus/limits.h b/ipc/kdbus/limits.h index 6450f58..c54925a 100644 --- a/ipc/kdbus/limits.h +++ b/ipc/kdbus/limits.h @@ -19,9 +19,6 @@ /* maximum size of message header and items */ #define KDBUS_MSG_MAX_SIZE SZ_8K -/* maximum number of message items */ -#define KDBUS_MSG_MAX_ITEMS 128 - /* maximum number of memfd items per message */ #define KDBUS_MSG_MAX_MEMFD_ITEMS 16 diff --git a/ipc/kdbus/message.c b/ipc/kdbus/message.c index 066e816..e9da672 100644 --- a/ipc/kdbus/message.c +++ b/ipc/kdbus/message.c @@ -214,7 +214,7 @@ static int kdbus_msg_scan_items(struct kdbus_kmsg *kmsg, struct kdbus_msg_resources *res = kmsg->res; const struct kdbus_msg *msg = &kmsg->msg; const struct kdbus_item *item; - size_t n, n_vecs, n_memfds; + size_t n_res, n_vecs, n_memfds; bool has_bloom = false; bool has_name = false; bool has_fds = false; @@ -243,9 +243,9 @@ static int kdbus_msg_scan_items(struct kdbus_kmsg *kmsg, } } - n = n_vecs + n_memfds; - if (n > 0) { - res->data = kcalloc(n, sizeof(*res->data), GFP_KERNEL); + n_res = n_vecs + n_memfds; + if (n_res > 0) { + res->data = kcalloc(n_res, sizeof(*res->data), GFP_KERNEL); if (!res->data) return -ENOMEM; } @@ -257,15 +257,11 @@ static int kdbus_msg_scan_items(struct kdbus_kmsg *kmsg, } /* import data payloads */ - n = 0; vec_size = 0; KDBUS_ITEMS_FOREACH(item, msg->items, KDBUS_ITEMS_SIZE(msg, items)) { size_t payload_size = KDBUS_ITEM_PAYLOAD_SIZE(item); struct iovec *iov = kmsg->iov + kmsg->iov_count; - if (++n > KDBUS_MSG_MAX_ITEMS) - return -E2BIG; - switch (item->type) { case KDBUS_ITEM_PAYLOAD_VEC: { struct kdbus_msg_data *d = res->data + res->data_count; -- 2.4.5
| |