summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2018-02-02 10:07:05 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2018-02-02 14:38:05 +0000
commitc219cc5307474cb53612ca759354f9473955e110 (patch)
treea796653df3dc11f82181a7cce6e538ae67970bfa /tools
parenta20a69e25a18ec63236633b804d89cc0c0cea259 (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.c2
-rw-r--r--tools/intel_reg_spec.c4
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(&reg, 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(&regex, 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++;