summaryrefslogtreecommitdiff
path: root/dirent.c
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2015-05-25 20:41:02 +0000
committerDmitry V. Levin <ldv@altlinux.org>2015-05-25 22:25:22 +0000
commit3e9d71feaad428f0f8e335f83b86e9f2a16781fb (patch)
tree7493bf304c28016969885ea5f9d0f4ea1b1d35f7 /dirent.c
parent8c20d8926c0ec14d2b08acdf775050d4d99210d3 (diff)
downloadstrace-3e9d71feaad428f0f8e335f83b86e9f2a16781fb.tar.gz
Introduce memory allocation wrappers
Introduce wrappers to the following functions that do memory allocation: malloc, calloc, realloc, strdup. This commit is a follow-up to the related discussions in strace-devel ML: http://sourceforge.net/p/strace/mailman/message/33618180/ http://sourceforge.net/p/strace/mailman/message/33733470/ * defs.h (xmalloc, xcalloc, xreallocarray, xstrdup): New prototypes. * xmalloc.c: New file. * Makefile.am (strace_SOURCES): Add it. * count.c (count_syscall, call_summary_pers): Use xcalloc. * desc.c (decode_select): Use xmalloc. * dirent.c (sys_getdents, sys_getdents64): Likewise. * net.c (sys_recvmmsg): Use xstrdup. * pathtrace.c (storepath): Use xreallocarray. (pathtrace_match): Use xmalloc. * strace.c (die_out_of_memory): Move to xmalloc.c. (expand_tcbtab): Use xcalloc and xreallocarray. (startup_child): Use xstrdup. (init): Use xmalloc, xcalloc, and xstrdup. * syscall.c (reallocate_qual): Use xreallocarray. (qualify): Use xstrdup. * unwind.c (unwind_tcb_init): Use xmalloc. (build_mmap_cache): Use xcalloc, xreallocarray, and xstrdup. (get_symbol_name): Use xreallocarray. (stacktrace_walk, queue_put): Use xmalloc. * util.c (printstr): Use xmalloc. * vsprintf.c (strace_vfprintf): Likewise.
Diffstat (limited to 'dirent.c')
-rw-r--r--dirent.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/dirent.c b/dirent.c
index 32f04b9e9..988d535c0 100644
--- a/dirent.c
+++ b/dirent.c
@@ -81,9 +81,7 @@ SYS_FUNC(getdents)
len = tcp->u_rval;
if (len) {
- buf = malloc(len);
- if (!buf)
- die_out_of_memory();
+ buf = xmalloc(len);
if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
free(buf);
@@ -164,9 +162,7 @@ SYS_FUNC(getdents64)
len = tcp->u_rval;
if (len) {
- buf = malloc(len);
- if (!buf)
- die_out_of_memory();
+ buf = xmalloc(len);
if (umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
tprintf("%#lx, %lu", tcp->u_arg[1], tcp->u_arg[2]);
free(buf);