ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/pack/freebsd/devel/libexecinfo/files/patch-execinfo.c
Revision: 2
Committed: 2007-01-31T14:59:36-08:00 (18 years, 4 months ago) by douglas
Content type: text/x-c
Original Path: freebsd/libexecinfo/files/patch-execinfo.c
File size: 1656 byte(s)
Log Message:
This needs fixing...

File Contents

# User Rev Content
1 douglas 2 --- execinfo.c.orig Sun Jul 18 22:21:09 2004
2     +++ execinfo.c Wed Feb 9 16:56:51 2005
3     @@ -78,7 +78,6 @@
4     rval = malloc(clen);
5     if (rval == NULL)
6     return NULL;
7     - (char **)cp = &(rval[size]);
8     for (i = 0; i < size; i++) {
9     if (dladdr(buffer[i], &info) != 0) {
10     if (info.dli_sname == NULL)
11     @@ -92,14 +91,14 @@
12     2 + /* " <" */
13     strlen(info.dli_sname) + /* "function" */
14     1 + /* "+" */
15     - D10(offset) + /* "offset */
16     + 10 + /* "offset */
17     5 + /* "> at " */
18     strlen(info.dli_fname) + /* "filename" */
19     1; /* "\0" */
20     rval = realloc_safe(rval, clen + alen);
21     if (rval == NULL)
22     return NULL;
23     - snprintf(cp, alen, "%p <%s+%d> at %s",
24     + snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s",
25     buffer[i], info.dli_sname, offset, info.dli_fname);
26     } else {
27     alen = 2 + /* "0x" */
28     @@ -108,11 +107,14 @@
29     rval = realloc_safe(rval, clen + alen);
30     if (rval == NULL)
31     return NULL;
32     - snprintf(cp, alen, "%p", buffer[i]);
33     + snprintf((char *) rval + clen, alen, "%p", buffer[i]);
34     }
35     - rval[i] = cp;
36     - cp += alen;
37     + rval[i] = (char *) clen;
38     + clen += alen;
39     }
40     +
41     + for (i = 0; i < size; i++)
42     + rval[i] += (int) rval;
43    
44     return rval;
45     }