disassemble_free_powerpc

This fixes leaks in a ppc disassembler buffer.  I'm not sure now why I
used a private buffer for section contents, but I'm not going to
change that just now.

	* disassemble.h (disassemble_free_powerpc): Declare.
	* disassemble.c (disassemble_free_target): Call it.
	* ppc-dis.c (disassemble_free_powerpc): New function.
This commit is contained in:
Alan Modra 2025-01-15 09:48:44 +10:30
parent 86790dfe16
commit 6cda040f1b
3 changed files with 12 additions and 0 deletions

View File

@ -767,6 +767,7 @@ disassemble_free_target (struct disassemble_info *info)
#endif
#ifdef ARCH_powerpc
case bfd_arch_powerpc:
disassemble_free_powerpc (info);
break;
#endif
#ifdef ARCH_riscv

View File

@ -105,6 +105,7 @@ extern disassembler_ftype rl78_get_disassembler (bfd *);
extern disassembler_ftype riscv_get_disassembler (bfd *);
extern void disassemble_free_riscv (disassemble_info *);
extern void disassemble_free_powerpc (disassemble_info *);
extern void ATTRIBUTE_NORETURN opcodes_assert (const char *, int);

View File

@ -537,6 +537,16 @@ disassemble_init_powerpc (struct disassemble_info *info)
}
}
void
disassemble_free_powerpc (struct disassemble_info *info)
{
if (info->private_data != NULL)
{
free (private_data (info)->special[0].buf);
free (private_data (info)->special[1].buf);
}
}
/* Print a big endian PowerPC instruction. */
int