X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fi386%2Fkernel%2Fmicrocode-xen.c;h=bf511a7d508a27f3811c7332dc93bac1a7b9b86e;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=f010a9089fdd47a4342d8ea189722d4192e2bf01;hpb=76828883507a47dae78837ab5dec5a5b4513c667;p=linux-2.6.git diff --git a/arch/i386/kernel/microcode-xen.c b/arch/i386/kernel/microcode-xen.c index f010a9089..bf511a7d5 100644 --- a/arch/i386/kernel/microcode-xen.c +++ b/arch/i386/kernel/microcode-xen.c @@ -84,6 +84,11 @@ static ssize_t microcode_write (struct file *file, const char __user *buf, size_ { ssize_t ret; + if (len < DEFAULT_UCODE_TOTALSIZE) { + printk(KERN_ERR "microcode: not enough data\n"); + return -EINVAL; + } + if ((len >> PAGE_SHIFT) > num_physpages) { printk(KERN_ERR "microcode: too much data (max %ld pages)\n", num_physpages); return -EINVAL;