]>
Commit | Line | Data |
---|---|---|
b68ac3ec JB |
1 | --- elfutils-0.149/src/addr2line.c.orig 2010-10-24 10:15:08.419741882 +0200 |
2 | +++ elfutils-0.149/src/addr2line.c 2010-10-24 10:16:59.475738529 +0200 | |
3 | @@ -445,6 +445,12 @@ | |
0f5a32a6 | 4 | return false; |
5 | } | |
6 | ||
b68ac3ec | 7 | +#if ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 7))) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))) |
0f5a32a6 | 8 | +# define SCANF_ADDR "%m" |
9 | +#else | |
10 | +# define SCANF_ADDR "%a" | |
11 | +#endif | |
12 | + | |
13 | static int | |
14 | handle_address (const char *string, Dwfl *dwfl) | |
15 | { | |
b68ac3ec | 16 | @@ -455,10 +461,10 @@ |
c7f5889b | 17 | bool parsed = false; |
b68ac3ec | 18 | int i, j; |
c7f5889b | 19 | char *name = NULL; |
b68ac3ec JB |
20 | - if (sscanf (string, "(%a[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 |
21 | + if (sscanf (string, "(" SCANF_ADDR "[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 | |
22 | && string[i] == '\0') | |
0f5a32a6 | 23 | parsed = adjust_to_section (name, &addr, dwfl); |
b68ac3ec JB |
24 | - switch (sscanf (string, "%a[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) |
25 | + switch (sscanf (string, SCANF_ADDR "[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) | |
c7f5889b | 26 | { |
b68ac3ec JB |
27 | default: |
28 | break; |