diff options
author | Denys Vlasenko <dvlasenk@redhat.com> | 2011-08-31 14:00:02 +0200 |
---|---|---|
committer | Denys Vlasenko <dvlasenk@redhat.com> | 2011-08-31 14:00:02 +0200 |
commit | 1d46ba57a8ab16b353b531f2bbefe2ad7f354ca9 (patch) | |
tree | 110bb3a2706b013b97a903fcfae78fba69c3bba7 /mem.c | |
parent | 2fb4db3e7aa1d6ac6b4b43f47597197492a846dd (diff) | |
download | strace-1d46ba57a8ab16b353b531f2bbefe2ad7f354ca9.tar.gz strace-1d46ba57a8ab16b353b531f2bbefe2ad7f354ca9.tar.bz2 strace-1d46ba57a8ab16b353b531f2bbefe2ad7f354ca9.tar.xz |
Make out-of-memory handling more uniform
This fixes one real bug in dumpstr().
* defs.h: Declare die_out_of_memory().
* strace.c (die_out_of_memory): New function.
(strace_popen): If allocation fails, call die_out_of_memory().
(main): Likewise.
(expand_tcbtab): Likewise.
(rebuild_pollv): Likewise.
* count.c (count_syscall): Likewise.
(call_summary_pers): Likewise.
* desc.c (decode_select): Likewise.
* file.c (sys_getdents): Likewise.
(sys_getdents64): Likewise.
(sys_getdirentries): Likewise.
* pathtrace.c (pathtrace_match): Likewise.
* syscall.c (qualify): Likewise.
* util.c (printstr): Likewise.
(dumpiov): Likewise.
(dumpstr): Likewise.
(fixvfork): Likewise.
* mem.c (sys_mincore): Don't check free() parameter for NULL.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'mem.c')
-rw-r--r-- | mem.c | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -564,12 +564,12 @@ sys_mctl(struct tcb *tcp) int sys_mincore(struct tcb *tcp) { - unsigned long i, len; - char *vec = NULL; - if (entering(tcp)) { tprintf("%#lx, %lu, ", tcp->u_arg[0], tcp->u_arg[1]); } else { + unsigned long i, len; + char *vec = NULL; + len = tcp->u_arg[1]; if (syserror(tcp) || tcp->u_arg[2] == 0 || (vec = malloc(len)) == NULL || @@ -586,8 +586,7 @@ sys_mincore(struct tcb *tcp) } tprintf("]"); } - if (vec) - free(vec); + free(vec); } return 0; } |