kexec: ensure user memory sizes do not wrap
[cascardo/linux.git] / kernel / kexec_core.c
index 23311c8..5a83b2a 100644 (file)
@@ -168,6 +168,8 @@ int sanity_check_segment_list(struct kimage *image)
 
                mstart = image->segment[i].mem;
                mend   = mstart + image->segment[i].memsz;
+               if (mstart > mend)
+                       return -EADDRNOTAVAIL;
                if ((mstart & ~PAGE_MASK) || (mend & ~PAGE_MASK))
                        return -EADDRNOTAVAIL;
                if (mend >= KEXEC_DESTINATION_MEMORY_LIMIT)