View | Details | Raw Unified
Collapse All | Expand All

(-) linux-2.6.18-gentoo-r2/arch/i386/kernel/microcode.c (-7 / +2 lines)
 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;