]> git.apps.os.sepia.ceph.com Git - ceph-client.git/commitdiff
pcmcia: Add error handling for add_interval() in do_validate_mem()
authorWentao Liang <vulab@iscas.ac.cn>
Mon, 20 Jan 2025 13:10:06 +0000 (21:10 +0800)
committerDominik Brodowski <linux@dominikbrodowski.net>
Sat, 16 Aug 2025 13:49:58 +0000 (15:49 +0200)
In the do_validate_mem(), the call to add_interval() does not
handle errors. If kmalloc() fails in add_interval(), it could
result in a null pointer being inserted into the linked list,
leading to illegal memory access when sub_interval() is called
next.

This patch adds an error handling for the add_interval(). If
add_interval() returns an error, the function will return early
with the error code.

Fixes: 7b4884ca8853 ("pcmcia: validate late-added resources")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
drivers/pcmcia/rsrc_nonstatic.c

index bf9d070a44966d0a4206a702d94038e52c45b02a..da494fe451baf0b16b9cc76690c08e192132e4a0 100644 (file)
@@ -375,7 +375,9 @@ static int do_validate_mem(struct pcmcia_socket *s,
 
        if (validate && !s->fake_cis) {
                /* move it to the validated data set */
-               add_interval(&s_data->mem_db_valid, base, size);
+               ret = add_interval(&s_data->mem_db_valid, base, size);
+               if (ret)
+                       return ret;
                sub_interval(&s_data->mem_db, base, size);
        }