From: Stan Czerniawski Date: Sun, 23 Mar 2014 15:11:39 +0000 (-0400) Subject: cpu: Add basic check to TrafficGen initial state X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e18d0e04a2d44316bc9c9e09b74bcda5562e64cc;p=gem5.git cpu: Add basic check to TrafficGen initial state Prevent incomplete configuration of TrafficGen class from causing segmentation faults. If an 'INIT' line is not present in the configuration file then the currState variable will remain uninitialized which may result in a crash. --- diff --git a/src/cpu/testers/traffic_gen/traffic_gen.cc b/src/cpu/testers/traffic_gen/traffic_gen.cc index b7f1ecd4e..4b2259bd9 100644 --- a/src/cpu/testers/traffic_gen/traffic_gen.cc +++ b/src/cpu/testers/traffic_gen/traffic_gen.cc @@ -221,6 +221,8 @@ TrafficGen::parseConfig() name(), configFile); } + bool init_state_set = false; + // read line by line and determine the action based on the first // keyword string keyword; @@ -316,11 +318,17 @@ TrafficGen::parseConfig() // set the initial state as the active state is >> currState; + init_state_set = true; + DPRINTF(TrafficGen, "Initial state: %d\n", currState); } } } + if (!init_state_set) + fatal("%s: initial state not specified (add 'INIT ' line " + "to the config file)\n", name()); + // resize and populate state transition matrix transitionMatrix.resize(states.size()); for (size_t i = 0; i < states.size(); i++) {