Commit 1fb5ce0a authored by Mika Kuoppala's avatar Mika Kuoppala Committed by Matt Turner

intel/tools: Initialize offset correctly for i965_asm

If we leave offset uninitialized, access to store
will be random depending on stack value and can
segfault.
Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Sagar Ghuge's avatarSagar Ghuge <sagar.ghuge@intel.com>
Reviewed-by: Matt Turner's avatarMatt Turner <mattst88@gmail.com>
parent 85da1194
......@@ -29,7 +29,7 @@
extern FILE *yyin;
struct brw_codegen *p;
static int c_literal_output = 0;
char *input_filename;
char *input_filename = NULL;
int errors;
static void
......@@ -98,7 +98,7 @@ int main(int argc, char **argv)
bool help = false, compact = false;
void *store;
uint64_t pci_id = 0;
int offset, err;
int offset = 0, err;
int start_offset = 0;
struct disasm_info *disasm_info;
struct gen_device_info *devinfo;
......@@ -205,13 +205,11 @@ int main(int argc, char **argv)
brw_validate_instructions(p->devinfo, p->store, 0,
p->next_insn_offset, disasm_info);
int nr_insn = (p->next_insn_offset - start_offset) / 16;
const int nr_insn = (p->next_insn_offset - start_offset) / 16;
if (compact)
brw_compact_instructions(p, start_offset, disasm_info);
ralloc_free(disasm_info);
for (int i = 0; i < nr_insn; i++) {
const brw_inst *insn = store + offset;
bool compacted = false;
......@@ -226,6 +224,8 @@ int main(int argc, char **argv)
print_instruction(output, compacted, insn);
}
ralloc_free(disasm_info);
if (c_literal_output)
fprintf(output, "}");
......@@ -233,11 +233,8 @@ int main(int argc, char **argv)
goto end;
end:
if (input_filename)
free(input_filename);
if (output_file)
free(output_file);
free(input_filename);
free(output_file);
if (yyin)
fclose(yyin);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment