> -----Original Message-----
> From: ron minnich [mailto:[email protected]]
> Sent: Friday, May 08, 2009 11:27 PM
> To: Myles Watson
> Cc: coreboot
> Subject: Re: [coreboot] seemingly wrong code in
> src/arch/i386/boot/coreboot_table.c
> 
> Found the problem. 4240 broke builtd_option_tbl due to the addition of
> error checking which got the sense of fwrite wrong.
> fwrite returns 0 on error, non-zero otherwise; the code was written to
> assume non-zero was an error.

Guilty.  Thanks for finding it.

> 
> patch attached inline, qemu is booting again.
> If somebody wants to ack this and commit it that is fine with me.
> 
> Signed-off-by: Ronald G. Minnich <[email protected]>

Acked-by: Myles Watson <[email protected]>

Thanks,
Myles
 
> Index: util/options/build_opt_tbl.c
> ===================================================================
> --- util/options/build_opt_tbl.c      (revision 4263)
> +++ util/options/build_opt_tbl.c      (working copy)
> @@ -511,13 +511,13 @@
>               }
>               /* write the array values */
>               for(i=0;i<(ct->size-1);i++) {
> -                     if(!(i%10) && !err) err=fwrite("\n\t",1,2,fp);
> +                     if(!(i%10) && !err) err=!fwrite("\n\t",1,2,fp);
>                       sprintf(buf,"0x%02x,",cmos_table[i]);
> -                     if(!err) err=fwrite(buf,1,5,fp);
> +                     if(!err) err=!fwrite(buf,1,5,fp);
>               }
>               /* write the end */
>               sprintf(buf,"0x%02x\n",cmos_table[i]);
> -             if(!err) err=fwrite(buf,1,4,fp);
> +             if(!err) err=!fwrite(buf,1,4,fp);
>               if(!fwrite("};\n",1,3,fp)) {
>                       perror("Error - Could not write image file");
>                       fclose(fp);


-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to