]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
fs: dlm: add get buffer error handling
authorAlexander Aring <aahringo@redhat.com>
Tue, 3 Nov 2020 01:04:18 +0000 (20:04 -0500)
committerDavid Teigland <teigland@redhat.com>
Tue, 10 Nov 2020 18:14:20 +0000 (12:14 -0600)
This patch adds an error handling to the get buffer functionality if the
user is requesting a buffer length which is more than possible of
the internal buffer allocator. This should never happen because specific
handling decided by compile time, but will warn if somebody forget about
to handle this limitation right.

Signed-off-by: Alexander Aring <aahringo@redhat.com>
Signed-off-by: David Teigland <teigland@redhat.com>
fs/dlm/lowcomms.c

index 77382c2ce6da22edf05c2892c3e99cf95651ab09..620eca3979d54508704a72f5ca9028bfbbcd03eb 100644 (file)
@@ -1352,6 +1352,12 @@ void *dlm_lowcomms_get_buffer(int nodeid, int len, gfp_t allocation, char **ppc)
        struct writequeue_entry *e;
        int offset = 0;
 
+       if (len > LOWCOMMS_MAX_TX_BUFFER_LEN) {
+               BUILD_BUG_ON(PAGE_SIZE < LOWCOMMS_MAX_TX_BUFFER_LEN);
+               log_print("failed to allocate a buffer of size %d", len);
+               return NULL;
+       }
+
        con = nodeid2con(nodeid, allocation);
        if (!con)
                return NULL;