about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog3
-rw-r--r--libio/genops.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2d809063f4..ae48deffe3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2007-04-13  Jakub Jelinek  <jakub@redhat.com>
 
+	* libio/genops.c (_IO_default_finish): Call _IO_lock_fini
+	after _IO_un_link, not before it.
+
 	* stdio-common/printf_fp.c (___printf_fp): Fix exponent -4
 	special case handling when wcp == wstartp + 1.  Fix a comment typo.
 	* stdio-common/tfformat.c (sprint_doubles): Add a new testcase.
diff --git a/libio/genops.c b/libio/genops.c
index 8d62da7781..3f8d71a50f 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993,1995,1997-2002, 2003, 2004, 2006
+/* Copyright (C) 1993,1995,1997-2002, 2003, 2004, 2006, 2007
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -696,12 +696,12 @@ _IO_default_finish (fp, dummy)
       fp->_IO_save_base = NULL;
     }
 
+  INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) fp);
+
 #ifdef _IO_MTSAFE_IO
   if (fp->_lock != NULL)
     _IO_lock_fini (*fp->_lock);
 #endif
-
-  INTUSE(_IO_un_link) ((struct _IO_FILE_plus *) fp);
 }
 INTDEF(_IO_default_finish)