aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPer Grön <pgron@google.com>2020-05-25 16:57:01 +0200
committerPer Grön <pgron@google.com>2020-05-25 16:57:01 +0200
commit4590de5c7f221aa1ae4d11fd98af439241f4258f (patch)
tree959904d168c6251f821a0a863e5ac1c99b402a6b
parentcd2610e0fa1c6a90e8e4e4cfe06db1b474e752bb (diff)
downloadicestorm-4590de5c7f221aa1ae4d11fd98af439241f4258f.tar.gz
icestorm-4590de5c7f221aa1ae4d11fd98af439241f4258f.tar.bz2
icestorm-4590de5c7f221aa1ae4d11fd98af439241f4258f.zip
Fix array out of bounds access bug
This is triggered for example when icetime is invoked with an empty design.
-rw-r--r--icetime/icetime.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/icetime/icetime.cc b/icetime/icetime.cc
index 0735b00..9026c7c 100644
--- a/icetime/icetime.cc
+++ b/icetime/icetime.cc
@@ -62,16 +62,16 @@ std::map<int, std::string> net_symbols;
bool get_config_bit(int tile_x, int tile_y, int bit_row, int bit_col)
{
- if (int(config_bits.size()) < tile_x)
+ if (int(config_bits.size()) <= tile_x)
return false;
- if (int(config_bits[tile_x].size()) < tile_y)
+ if (int(config_bits[tile_x].size()) <= tile_y)
return false;
- if (int(config_bits[tile_x][tile_y].size()) < bit_row)
+ if (int(config_bits[tile_x][tile_y].size()) <= bit_row)
return false;
- if (int(config_bits[tile_x][tile_y][bit_row].size()) < bit_col)
+ if (int(config_bits[tile_x][tile_y][bit_row].size()) <= bit_col)
return false;
return config_bits[tile_x][tile_y][bit_row][bit_col];