Base CPU: Initialize profileEvent to NULL
authorJoel Hestness <hestness@cs.wisc.edu>
Thu, 13 Sep 2012 02:40:28 +0000 (21:40 -0500)
committerJoel Hestness <hestness@cs.wisc.edu>
Thu, 13 Sep 2012 02:40:28 +0000 (21:40 -0500)
The profileEvent pointer is tested against NULL in various places, but
it is not initialized unless running in full-system mode. In SE mode, this
can result in segmentation faults when profileEvent default intializes to
something other than NULL.

src/cpu/base.cc

index 98ddde293fb9fc70488bffa9983e53027d9ae275..1add92d1f65f271073d2ced76684c5be62668dc4 100644 (file)
@@ -118,7 +118,7 @@ BaseCPU::BaseCPU(Params *p, bool is_checker)
     : MemObject(p), instCnt(0), _cpuId(p->cpu_id),
       _instMasterId(p->system->getMasterId(name() + ".inst")),
       _dataMasterId(p->system->getMasterId(name() + ".data")),
-      interrupts(p->interrupts),
+      interrupts(p->interrupts), profileEvent(NULL),
       numThreads(p->numThreads), system(p->system)
 {
     // if Python did not provide a valid ID, do it here
@@ -225,7 +225,6 @@ BaseCPU::BaseCPU(Params *p, bool is_checker)
     }
 
     if (FullSystem) {
-        profileEvent = NULL;
         if (params()->profile)
             profileEvent = new ProfileEvent(this, params()->profile);
     }