|
Lines 250-263
static int find_matching_ucodes (void)
|
Link Here
|
|---|
|
} | } |
| |
total_size = get_totalsize(&mc_header); | total_size = get_totalsize(&mc_header); |
if ((cursor + total_size > user_buffer_size) || (total_size < DEFAULT_UCODE_TOTALSIZE)) { |
if (cursor + total_size > user_buffer_size) { |
printk(KERN_ERR "microcode: error! Bad data in microcode data file\n"); | printk(KERN_ERR "microcode: error! Bad data in microcode data file\n"); |
error = -EINVAL; | error = -EINVAL; |
goto out; | goto out; |
} | } |
| |
data_size = get_datasize(&mc_header); | data_size = get_datasize(&mc_header); |
if ((data_size + MC_HEADER_SIZE > total_size) || (data_size < DEFAULT_UCODE_DATASIZE)) { |
if (data_size + MC_HEADER_SIZE > total_size) { |
printk(KERN_ERR "microcode: error! Bad data in microcode data file\n"); | printk(KERN_ERR "microcode: error! Bad data in microcode data file\n"); |
error = -EINVAL; | error = -EINVAL; |
goto out; | goto out; |
|
Lines 460-470
static ssize_t microcode_write (struct f
|
Link Here
|
|---|
|
{ | { |
ssize_t ret; | ssize_t ret; |
| |
if (len < DEFAULT_UCODE_TOTALSIZE) { |
|
printk(KERN_ERR "microcode: not enough data\n"); |
|
return -EINVAL; |
|
} |
|
|
|
if ((len >> PAGE_SHIFT) > num_physpages) { | if ((len >> PAGE_SHIFT) > num_physpages) { |
printk(KERN_ERR "microcode: too much data (max %ld pages)\n", num_physpages); | printk(KERN_ERR "microcode: too much data (max %ld pages)\n", num_physpages); |
return -EINVAL; | return -EINVAL; |