summaryrefslogtreecommitdiffstats
path: root/backtrace-symbols.c
diff options
context:
space:
mode:
authorJohn Reiser <jreiser@bitwagon.com>2011-03-21 15:04:40 -0400
committerWilliam Cohen <wcohen@redhat.com>2011-03-21 15:04:40 -0400
commitd206de4f3b62a74500e923d9090b07577007845a (patch)
treef4ea732d6b494caf06b0f640d1800d2c8bc428dc /backtrace-symbols.c
parentd0714687a3ae74a6320e036999d1ad70d7633eee (diff)
downloadmemstomp-d206de4f3b62a74500e923d9090b07577007845a.tar.gz
memstomp-d206de4f3b62a74500e923d9090b07577007845a.tar.xz
memstomp-d206de4f3b62a74500e923d9090b07577007845a.zip
Prefer alloca() over malloc() where possible and small size
Diffstat (limited to 'backtrace-symbols.c')
-rw-r--r--backtrace-symbols.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/backtrace-symbols.c b/backtrace-symbols.c
index a8af6e4..aed39d6 100644
--- a/backtrace-symbols.c
+++ b/backtrace-symbols.c
@@ -45,6 +45,7 @@
#define false 0
#define _GNU_SOURCE
+#include <alloca.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
@@ -328,11 +329,10 @@ char **backtrace_symbols(void *const *buffer, int size)
/* discard calling function */
int total = 0;
- char ***locations;
char **final;
char *f_strings;
- locations = malloc(sizeof(char **) * (stack_depth+1));
+ char ***const locations = alloca(sizeof(char **) * (stack_depth+1));
bfd_init();
for(x=stack_depth, y=0; x>=0; x--, y++){
@@ -363,7 +363,5 @@ char **backtrace_symbols(void *const *buffer, int size)
f_strings += strlen(f_strings) + 1;
}
- free(locations);
-
return final;
}