[SeaBIOS] [PATCH 4/4] Use VARVERIFY32INIT on global variables that point to "tmp" memory.

Kevin O'Connor kevin at koconnor.net
Sat Mar 9 01:53:49 CET 2013


Enable the recently added build check on global variables that are (or
contain) pointers to memory allocated by malloc_tmp().  This helps
detect cases where temporary memory is accessed after POST.

Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
 src/boot.c    | 4 ++--
 src/pci.c     | 2 +-
 src/pmm.c     | 6 ++++--
 src/romfile.c | 2 +-
 4 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/boot.c b/src/boot.c
index 3370c2d..c308602 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -21,7 +21,7 @@
  * Boot priority ordering
  ****************************************************************/
 
-static char **Bootorder;
+static char **Bootorder VARVERIFY32INIT;
 static int BootorderCount;
 
 static void
@@ -293,7 +293,7 @@ struct bootentry_s {
     const char *description;
     struct bootentry_s *next;
 };
-static struct bootentry_s *BootList;
+static struct bootentry_s *BootList VARVERIFY32INIT;
 
 #define IPL_TYPE_FLOPPY      0x01
 #define IPL_TYPE_HARDDISK    0x02
diff --git a/src/pci.c b/src/pci.c
index 4f6a6fa..a92fb9b 100644
--- a/src/pci.c
+++ b/src/pci.c
@@ -85,7 +85,7 @@ pci_next(int bdf, int bus)
     }
 }
 
-struct pci_device *PCIDevices;
+struct pci_device *PCIDevices VARVERIFY32INIT;
 int MaxPCIBus VARFSEG;
 
 // Check if PCI is available at all
diff --git a/src/pmm.c b/src/pmm.c
index f02cf62..c4156ba 100644
--- a/src/pmm.c
+++ b/src/pmm.c
@@ -29,9 +29,11 @@ struct zone_s {
     struct allocinfo_s *info;
 };
 
-struct zone_s ZoneLow, ZoneHigh, ZoneFSeg, ZoneTmpLow, ZoneTmpHigh;
+struct zone_s ZoneLow VARVERIFY32INIT, ZoneHigh VARVERIFY32INIT;
+struct zone_s ZoneFSeg VARVERIFY32INIT;
+struct zone_s ZoneTmpLow VARVERIFY32INIT, ZoneTmpHigh VARVERIFY32INIT;
 
-static struct zone_s *Zones[] = {
+static struct zone_s *Zones[] VARVERIFY32INIT = {
     &ZoneTmpLow, &ZoneLow, &ZoneFSeg, &ZoneTmpHigh, &ZoneHigh
 };
 
diff --git a/src/romfile.c b/src/romfile.c
index 93ee3d6..ea71d1f 100644
--- a/src/romfile.c
+++ b/src/romfile.c
@@ -7,7 +7,7 @@
 #include "config.h" // CONFIG_*
 #include "util.h" // dprintf
 
-static struct romfile_s *RomfileRoot;
+static struct romfile_s *RomfileRoot VARVERIFY32INIT;
 
 void
 romfile_add(struct romfile_s *file)
-- 
1.7.11.7




More information about the SeaBIOS mailing list