diff options
author | Per Grön <pgron@google.com> | 2020-05-25 16:57:01 +0200 |
---|---|---|
committer | Per Grön <pgron@google.com> | 2020-05-25 16:57:01 +0200 |
commit | 4590de5c7f221aa1ae4d11fd98af439241f4258f (patch) | |
tree | 959904d168c6251f821a0a863e5ac1c99b402a6b | |
parent | cd2610e0fa1c6a90e8e4e4cfe06db1b474e752bb (diff) | |
download | icestorm-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.cc | 8 |
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]; |