(tests): Add tst-iconv2.
[kopensolaris-gnu/glibc.git] / iconv / iconv_close.c
index d3123e2..c999e44 100644 (file)
@@ -1,5 +1,5 @@
 /* Release any resource associated with given conversion descriptor.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+#include <errno.h>
 #include <iconv.h>
 
-#include <gconv.h>
+#include <gconv_int.h>
 
 
 int
 iconv_close (iconv_t cd)
 {
-  return __gconv_close ((gconv_t) cd) ? -1 : 0;
+  if (__builtin_expect (cd == (iconv_t *) -1L, 0))
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
+
+  return __gconv_close ((__gconv_t) cd) ? -1 : 0;
 }