Signed-off-by: Ben Widawsky <ben at bwidawsk.net> --- tools/intel_error_decode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/intel_error_decode.c b/tools/intel_error_decode.c index 96aaf72..d2e91e7 100644 --- a/tools/intel_error_decode.c +++ b/tools/intel_error_decode.c @@ -283,6 +283,7 @@ print_fence(unsigned int devid, uint64_t fence) static void read_data_file(FILE *file) { +#define MAX_RINGS 10 /* I really hope this never... */ struct drm_intel_decode *decode_ctx = NULL; uint32_t devid = PCI_CHIP_I855_GM; uint32_t *data = NULL; @@ -295,7 +296,7 @@ read_data_file(FILE *file) const char *buffer_type[2] = { "ringbuffer", "batchbuffer" }; char *ring_name = NULL; int is_batch = 1; - uint32_t raw_head = -1, head[3] = {-1, -1, -1}, acthd[3] = {-1,-1,-1}; + uint32_t raw_head = -1, head[MAX_RINGS] = {-1, -1, -1}, acthd[MAX_RINGS] = {-1,-1,-1}; int i = 0, num_rings = -1; while (getline(&line, &line_size, file) > 0) { @@ -400,6 +401,7 @@ read_data_file(FILE *file) if (matched == 1) { head[i++] = print_head(reg); raw_head = reg; + assert(i < MAX_RINGS); } matched = sscanf(line, " ACTHD: 0x%08x\n", ®); -- 1.8.2.1