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: Mika Kuoppala <mika.kuoppala@linux.intel.com> Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:

committed by
Matt Turner

parent
85da1194ec
commit
1fb5ce0a11
@@ -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);
|
||||
|
Reference in New Issue
Block a user