Skip to content

Commit

Permalink
* malloc/mtrace.c (mtrace): Use 'e' flag in fopen call. Drop
Browse files Browse the repository at this point in the history
	F_SETFD use if we know fopen set the flag.
  • Loading branch information
Ulrich Drepper committed Jul 26, 2008
1 parent 7438a80 commit 72112b0
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
3 changes: 3 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
2008-07-26 Ulrich Drepper <drepper@redhat.com>

* malloc/mtrace.c (mtrace): Use 'e' flag in fopen call. Drop
F_SETFD use if we know fopen set the flag.

* login/utmp_file.c (setutent_file): Minor optimization in case
O_CLOEXEC is available.

Expand Down
18 changes: 10 additions & 8 deletions malloc/mtrace.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* More debugging hooks for `malloc'.
Copyright (C) 1991-1994,1996-2003, 2004 Free Software Foundation, Inc.
Copyright (C) 1991-1994,1996-2004, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written April 2, 1991 by John Gilmore of Cygnus Support.
Based on mcheck.c by Mike Haertel.
Expand Down Expand Up @@ -34,13 +34,13 @@

#include <stdio-common/_itoa.h>

#ifdef _LIBC
# include <libc-internal.h>
#include <libc-internal.h>

# include <libio/iolibio.h>
# define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l)
# define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp)
#endif
#include <libio/iolibio.h>
#define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l)
#define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp)

#include <kernel-features.h>

#ifndef attribute_hidden
# define attribute_hidden
Expand Down Expand Up @@ -315,16 +315,18 @@ mtrace ()
if (mtb == NULL)
return;

mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wc");
mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wce");
if (mallstream != NULL)
{
#ifndef __ASSUME_O_CLOEXEC
/* Make sure we close the file descriptor on exec. */
int flags = __fcntl (fileno (mallstream), F_GETFD, 0);
if (flags >= 0)
{
flags |= FD_CLOEXEC;
__fcntl (fileno (mallstream), F_SETFD, flags);
}
#endif
/* Be sure it doesn't malloc its buffer! */
malloc_trace_buffer = mtb;
setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);
Expand Down

0 comments on commit 72112b0

Please sign in to comment.