diff options
author | Matt Fleming <matt@console-pimps.org> | 2009-10-10 11:03:11 -0400 |
---|---|---|
committer | Matt Fleming <matt@console-pimps.org> | 2009-10-11 12:12:28 -0400 |
commit | ed4fe7f488008f38d5f423f0bcc736b1779d6ddc (patch) | |
tree | 9d569f812409f9738a99b6a0d398028e85512a28 /arch/sh/include/asm/dwarf.h | |
parent | a6a2f2ad67506090e332f440457553c0ec011d68 (diff) |
sh: Fix memory leak in dwarf_unwind_stack()
If we broke out of the while (1) loop because the return address of
"frame" was zero, then "frame" needs to be free'd before we return.
Signed-off-by: Matt Fleming <matt@console-pimps.org>
Diffstat (limited to 'arch/sh/include/asm/dwarf.h')
-rw-r--r-- | arch/sh/include/asm/dwarf.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/sh/include/asm/dwarf.h b/arch/sh/include/asm/dwarf.h index aacdc746d07c..eef87539963d 100644 --- a/arch/sh/include/asm/dwarf.h +++ b/arch/sh/include/asm/dwarf.h | |||
@@ -376,6 +376,7 @@ static inline unsigned int DW_CFA_operand(unsigned long insn) | |||
376 | 376 | ||
377 | extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, | 377 | extern struct dwarf_frame *dwarf_unwind_stack(unsigned long, |
378 | struct dwarf_frame *); | 378 | struct dwarf_frame *); |
379 | extern void dwarf_free_frame(struct dwarf_frame *); | ||
379 | extern int dwarf_parse_section(char *, char *, struct module *); | 380 | extern int dwarf_parse_section(char *, char *, struct module *); |
380 | extern void dwarf_module_unload(struct module *); | 381 | extern void dwarf_module_unload(struct module *); |
381 | 382 | ||