if (size >= MAX_FILE_NOTE_SIZE) /* paranoia check */
                return -EINVAL;
        size = round_up(size, PAGE_SIZE);
+       /*
+        * "size" can be 0 here legitimately.
+        * Let it ENOMEM and omit NT_FILE section which will be empty anyway.
+        */
        data = kvmalloc(size, GFP_KERNEL);
        if (ZERO_OR_NULL_PTR(data))
                return -ENOMEM;
 
        dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
 
+       /*
+        * Zero vma process will get ZERO_SIZE_PTR here.
+        * Let coredump continue for register state at least.
+        */
        vma_filesz = kvmalloc(array_size(sizeof(*vma_filesz), (segs - 1)),
                              GFP_KERNEL);
-       if (ZERO_OR_NULL_PTR(vma_filesz))
+       if (!vma_filesz)
                goto end_coredump;
 
        for (i = 0, vma = first_vma(current, gate_vma); vma != NULL;