summaryrefslogtreecommitdiffstats
path: root/arch/sh/include
diff options
context:
space:
mode:
authorMatt Fleming <matt@console-pimps.org>2009-10-10 17:03:11 +0200
committerMatt Fleming <matt@console-pimps.org>2009-10-11 18:12:28 +0200
commited4fe7f488008f38d5f423f0bcc736b1779d6ddc (patch)
tree9d569f812409f9738a99b6a0d398028e85512a28 /arch/sh/include
parentsh: Teach the DWARF unwinder about modules (diff)
downloadlinux-ed4fe7f488008f38d5f423f0bcc736b1779d6ddc.tar.xz
linux-ed4fe7f488008f38d5f423f0bcc736b1779d6ddc.zip
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')
-rw-r--r--arch/sh/include/asm/dwarf.h1
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)
extern struct dwarf_frame *dwarf_unwind_stack(unsigned long,
struct dwarf_frame *);
+extern void dwarf_free_frame(struct dwarf_frame *);
extern int dwarf_parse_section(char *, char *, struct module *);
extern void dwarf_module_unload(struct module *);