2009-08-21 16:18:46 +02:00
|
|
|
Index: src/addr2line.c
|
|
|
|
===================================================================
|
|
|
|
--- src/addr2line.c.orig 2009-04-21 16:50:01.000000000 +0200
|
|
|
|
+++ src/addr2line.c 2009-08-20 13:11:58.000000000 +0200
|
|
|
|
@@ -446,11 +446,11 @@ handle_address (const char *string, Dwfl
|
2009-02-19 18:07:55 +01:00
|
|
|
{
|
|
|
|
bool parsed = false;
|
|
|
|
int n;
|
|
|
|
- char *name = NULL;
|
|
|
|
- if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &n) == 2
|
|
|
|
+ char name[4096]; /* FIXME */
|
|
|
|
+ if (sscanf (string, "(%[^)])%" PRIiMAX "%n", name, &addr, &n) == 2
|
|
|
|
&& string[n] == '\0')
|
2009-08-21 16:18:46 +02:00
|
|
|
parsed = adjust_to_section (name, &addr, dwfl);
|
2009-02-19 18:07:55 +01:00
|
|
|
- else if (sscanf (string, "%m[^-+]%" PRIiMAX "%n", &name, &addr, &n) == 2
|
2009-08-21 16:18:46 +02:00
|
|
|
+ else if (sscanf (string, "%[^-+]%" PRIiMAX "%n", &name, &addr, &n) == 2
|
2009-02-19 18:07:55 +01:00
|
|
|
&& string[n] == '\0')
|
|
|
|
{
|
|
|
|
/* It was symbol+offset. */
|
2009-08-21 16:18:46 +02:00
|
|
|
@@ -471,7 +471,6 @@ handle_address (const char *string, Dwfl
|
2009-02-19 18:07:55 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
- free (name);
|
|
|
|
if (!parsed)
|
|
|
|
return 1;
|
|
|
|
}
|