diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2018-02-02 10:07:05 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2018-02-02 14:38:05 +0000 |
commit | c219cc5307474cb53612ca759354f9473955e110 (patch) | |
tree | a796653df3dc11f82181a7cce6e538ae67970bfa /tools | |
parent | a20a69e25a18ec63236633b804d89cc0c0cea259 (diff) |
tools: Clear unused fields in register spec
If we fail to clear the other fields inside the register spec, they may
be left with garbage instructing us to access the register via an
invalid path.
v2: Grab Mika's fix for get_regs() and check all parse_port_desc()
callers.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104895
Fixes: 7f0be0e7d9be ("tools/intel_reg: Add reading and writing registers through engine")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
CC: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/intel_reg_decode.c | 2 | ||||
-rw-r--r-- | tools/intel_reg_spec.c | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/tools/intel_reg_decode.c b/tools/intel_reg_decode.c index 46b19676..f3c7d74a 100644 --- a/tools/intel_reg_decode.c +++ b/tools/intel_reg_decode.c @@ -2746,7 +2746,7 @@ static ssize_t get_regs(struct reg **regs, size_t *nregs, ssize_t index, for (j = 0; j < known_registers[i].count; j++) { const struct reg_debug *reg_in = &known_registers[i].regs[j]; - struct reg reg; + struct reg reg = {}; /* XXX: Could be optimized. */ parse_port_desc(®, NULL); diff --git a/tools/intel_reg_spec.c b/tools/intel_reg_spec.c index 5594d707..0df69b68 100644 --- a/tools/intel_reg_spec.c +++ b/tools/intel_reg_spec.c @@ -219,8 +219,6 @@ static int parse_line(struct reg *reg, const char *line) initialized = true; } - memset(reg, 0, sizeof(*reg)); - ret = regexec(®ex, line, ARRAY_SIZE(match), match, 0); if (ret) ret = -1; @@ -267,7 +265,7 @@ static ssize_t parse_file(struct reg **regs, size_t *nregs, } while (getline(&line, &linesize, file) != -1) { - struct reg reg; + struct reg reg = {}; lineno++; |