]> www.infradead.org Git - users/hch/misc.git/commitdiff
tipc: re-order conditions in tipc_crypto_key_rcv()
authorDan Carpenter <dan.carpenter@linaro.org>
Fri, 17 Jan 2025 09:36:14 +0000 (12:36 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 20 Jan 2025 12:18:26 +0000 (12:18 +0000)
On a 32bit system the "keylen + sizeof(struct tipc_aead_key)" math could
have an integer wrapping issue.  It doesn't matter because the "keylen"
is checked on the next line, but just to make life easier for static
analysis tools, let's re-order these conditions and avoid the integer
overflow.

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/crypto.c

index 43c3f1c971b8fdf43e93b1616483fb2d8fef3d57..c524421ec6525259a65ae6189946b69a43402a01 100644 (file)
@@ -2293,8 +2293,8 @@ static bool tipc_crypto_key_rcv(struct tipc_crypto *rx, struct tipc_msg *hdr)
        keylen = ntohl(*((__be32 *)(data + TIPC_AEAD_ALG_NAME)));
 
        /* Verify the supplied size values */
-       if (unlikely(size != keylen + sizeof(struct tipc_aead_key) ||
-                    keylen > TIPC_AEAD_KEY_SIZE_MAX)) {
+       if (unlikely(keylen > TIPC_AEAD_KEY_SIZE_MAX ||
+                    size != keylen + sizeof(struct tipc_aead_key))) {
                pr_debug("%s: invalid MSG_CRYPTO key size\n", rx->name);
                goto exit;
        }