namespace: pre-calculate payload_size to simplify code
authorDaniel Mack <zonque@gmail.com>
Tue, 17 Dec 2013 17:49:56 +0000 (18:49 +0100)
committerDaniel Mack <zonque@gmail.com>
Tue, 17 Dec 2013 17:50:19 +0000 (18:50 +0100)
namespace.c

index e1cfe983c1911893e4beeaa2ac5ff04961555921..140ed9aa3ca11cc762a762510c50f8b18eb87c9a 100644 (file)
@@ -330,11 +330,15 @@ int kdbus_ns_make_user(void __user *buf,
        }
 
        KDBUS_ITEM_FOREACH(item, m, items) {
+               size_t payload_size;
+
                if (!KDBUS_ITEM_VALID(item, m)) {
                        ret = -EINVAL;
                        goto exit;
                }
 
+               payload_size = item->size - KDBUS_ITEM_HEADER_SIZE;
+
                switch (item->type) {
                case KDBUS_ITEM_MAKE_NAME:
                        if (n) {
@@ -342,18 +346,17 @@ int kdbus_ns_make_user(void __user *buf,
                                goto exit;
                        }
 
-                       if (item->size < KDBUS_ITEM_HEADER_SIZE + 2) {
+                       if (payload_size < 2) {
                                ret = -EINVAL;
                                goto exit;
                        }
 
-                       if (item->size > KDBUS_ITEM_HEADER_SIZE + KDBUS_MAKE_MAX_LEN + 1) {
+                       if (payload_size > KDBUS_MAKE_MAX_LEN + 1) {
                                ret = -ENAMETOOLONG;
                                goto exit;
                        }
 
-                       if (!kdbus_validate_nul(item->str,
-                                               item->size - KDBUS_ITEM_HEADER_SIZE)) {
+                       if (!kdbus_validate_nul(item->str, payload_size)) {
                                ret = -EINVAL;
                                goto exit;
                        }