diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2015-05-25 20:41:02 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2015-05-25 22:25:22 +0000 |
commit | 3e9d71feaad428f0f8e335f83b86e9f2a16781fb (patch) | |
tree | 7493bf304c28016969885ea5f9d0f4ea1b1d35f7 /dirent.c | |
parent | 8c20d8926c0ec14d2b08acdf775050d4d99210d3 (diff) | |
download | strace-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.c | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -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); |