1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-05 19:35:52 +03:00

* malloc/mtrace.c (mtrace): Use 'e' flag in fopen call. Drop

F_SETFD use if we know fopen set the flag.
This commit is contained in:
Ulrich Drepper
2008-07-26 22:43:16 +00:00
parent 7438a80dcb
commit 72112b0cb4
2 changed files with 13 additions and 8 deletions

View File

@@ -1,5 +1,8 @@
2008-07-26 Ulrich Drepper <drepper@redhat.com> 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 * login/utmp_file.c (setutent_file): Minor optimization in case
O_CLOEXEC is available. O_CLOEXEC is available.

View File

@@ -1,5 +1,5 @@
/* More debugging hooks for `malloc'. /* 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. This file is part of the GNU C Library.
Written April 2, 1991 by John Gilmore of Cygnus Support. Written April 2, 1991 by John Gilmore of Cygnus Support.
Based on mcheck.c by Mike Haertel. Based on mcheck.c by Mike Haertel.
@@ -34,13 +34,13 @@
#include <stdio-common/_itoa.h> #include <stdio-common/_itoa.h>
#ifdef _LIBC #include <libc-internal.h>
# include <libc-internal.h>
# include <libio/iolibio.h> #include <libio/iolibio.h>
# define setvbuf(s, b, f, l) INTUSE(_IO_setvbuf) (s, b, f, l) #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) #define fwrite(buf, size, count, fp) _IO_fwrite (buf, size, count, fp)
#endif
#include <kernel-features.h>
#ifndef attribute_hidden #ifndef attribute_hidden
# define attribute_hidden # define attribute_hidden
@@ -315,9 +315,10 @@ mtrace ()
if (mtb == NULL) if (mtb == NULL)
return; return;
mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wc"); mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wce");
if (mallstream != NULL) if (mallstream != NULL)
{ {
#ifndef __ASSUME_O_CLOEXEC
/* Make sure we close the file descriptor on exec. */ /* Make sure we close the file descriptor on exec. */
int flags = __fcntl (fileno (mallstream), F_GETFD, 0); int flags = __fcntl (fileno (mallstream), F_GETFD, 0);
if (flags >= 0) if (flags >= 0)
@@ -325,6 +326,7 @@ mtrace ()
flags |= FD_CLOEXEC; flags |= FD_CLOEXEC;
__fcntl (fileno (mallstream), F_SETFD, flags); __fcntl (fileno (mallstream), F_SETFD, flags);
} }
#endif
/* Be sure it doesn't malloc its buffer! */ /* Be sure it doesn't malloc its buffer! */
malloc_trace_buffer = mtb; malloc_trace_buffer = mtb;
setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE); setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);