Stefan Reinauer ([email protected]) just uploaded a new patch set to 
gerrit, which you can find at http://review.coreboot.org/752

-gerrit

commit 71ce35ac0b8a3a2ba4a931cf9fb9284086adfec8
Author: Stefan Reinauer <[email protected]>
Date:   Mon Nov 14 12:40:34 2011 -0800

    Fix warnings in coreboot utilities.
    
    Fix some poor programming practice (breaks of strict aliasing as well as not
    checking the return value of read)
    
    Change-Id: I08b2e8d1bbc908f6b1f26d25cb3a4b03d818e124
    Signed-off-by: Stefan Reinauer <[email protected]>
---
 util/inteltool/cpu.c           |    6 ++++--
 util/inteltool/inteltool.c     |    4 +++-
 util/nvramtool/cli/nvramtool.c |    3 ++-
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/util/inteltool/cpu.c b/util/inteltool/cpu.c
index 20748bd..3bffa4e 100644
--- a/util/inteltool/cpu.c
+++ b/util/inteltool/cpu.c
@@ -67,8 +67,10 @@ msr_t rdmsr(int addr)
        }
 
        if (read(fd_msr, buf, 8) == 8) {
-               msr.lo = *(uint32_t *)buf;
-               msr.hi = *(uint32_t *)(buf + 4);
+               msr.lo = buf[0] | (buf[1] << 8) |
+                        (buf[2] << 16) | (buf[3] << 24);
+               msr.hi = buf[4] | (buf[5] << 8) |
+                        (buf[6] << 16) | (buf[7] << 24);
 
                return msr;
        }
diff --git a/util/inteltool/inteltool.c b/util/inteltool/inteltool.c
index 6b99605..e5c2b86 100644
--- a/util/inteltool/inteltool.c
+++ b/util/inteltool/inteltool.c
@@ -21,6 +21,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+#include <inttypes.h>
 #include <getopt.h>
 #include <fcntl.h>
 #include <sys/mman.h>
@@ -99,7 +100,8 @@ void *map_physical(uint64_t phys_addr, size_t len)
                    fd_mem, (off_t) phys_addr);
 
        if (virt_addr == MAP_FAILED) {
-               printf("Error mapping physical memory 0x%08lx[0x%zx]\n", 
phys_addr, len);
+               printf("Error mapping physical memory 0x%08" PRIx64 "[0x%zx]\n",
+                       phys_addr, len);
                return NULL;
        }
 
diff --git a/util/nvramtool/cli/nvramtool.c b/util/nvramtool/cli/nvramtool.c
index 11a1a70..20097b8 100644
--- a/util/nvramtool/cli/nvramtool.c
+++ b/util/nvramtool/cli/nvramtool.c
@@ -143,7 +143,8 @@ int main(int argc, char *argv[])
 
                if (fd_stat.st_size < 128) {
                        lseek(fd, 127, SEEK_SET);
-                       write(fd, "\0", 1);
+                       if (write(fd, "\0", 1) != 1)
+                               fprintf(stderr, "Write failed.\n");
                        fsync(fd);
                }
 

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

Reply via email to