about summary refs log tree commit diff
path: root/dlfcn/dlerror.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-11-19 06:41:14 +0000
committerRoland McGrath <roland@gnu.org>2002-11-19 06:41:14 +0000
commit0bf5c0507e1db5e551a9681533592c8829a12f9d (patch)
tree98a94b0992788213881ff276401df39d2895dd8e /dlfcn/dlerror.c
parentc27af28ef2e5eeb23cf894dfd8b35de6cfa69a32 (diff)
downloadglibc-0bf5c0507e1db5e551a9681533592c8829a12f9d.tar.gz
glibc-0bf5c0507e1db5e551a9681533592c8829a12f9d.tar.xz
glibc-0bf5c0507e1db5e551a9681533592c8829a12f9d.zip
* sysdeps/hppa/fpu/libm-test-ulps: New file (generated).
	* sysdeps/hppa/Makefile (CFLAGS-rtld.c): New variable.
	Set -mdisable-fpregs for this file.

2002-11-11  Carlos O'Donell  <carlos@baldric.uwo.ca>

	* sysdeps/unix/sysv/linux/configure.in:
	Make 2.4.19 minimum linux kernel for hppa, and add unwind symbols
	from gcc-3.0 era for backwards compatibility.
	* sysdeps/unix/sysv/linux/configure: Regenerate.

        * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h:
        Define mcontext_t as a sigcontext.

	* dlfcn/dlerror.c (fini): New function, __attribute__ ((destructor)).
	Free memory in `last_result' if it was used.

	* resolv/nss_dns/dns-network.c (getanswer_r): In BYNAME case, search
	all aliases for one that matches the "<dotted-quad>.IN-ADDR.ARPA" form.
	Do the parsing inline instead of copying strings and calling
	inet_network, and properly skip all alias names not matching the form.
Diffstat (limited to 'dlfcn/dlerror.c')
-rw-r--r--dlfcn/dlerror.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c
index a754d3d9f6..eaf5ef9294 100644
--- a/dlfcn/dlerror.c
+++ b/dlfcn/dlerror.c
@@ -1,5 +1,6 @@
 /* Return error detail for failing <dlfcn.h> functions.
-   Copyright (C) 1995, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,1998,1999,2000,2002
+	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -148,6 +149,15 @@ init (void)
     static_buf = &last_result;
 }
 
+static void
+__attribute__ ((destructor))
+fini (void)
+{
+  if (last_result.errstring != NULL
+      && strcmp (last_result.errstring, "out of memory") != 0)
+    free ((char *) last_result.errstring);
+}
+
 
 /* Free the thread specific data, this is done if a thread terminates.  */
 static void