]> git.saurik.com Git - apple/libc.git/blobdiff - stdio/FreeBSD/fclose.c
Libc-825.24.tar.gz
[apple/libc.git] / stdio / FreeBSD / fclose.c
index e80edcfcf0cf0bf53d26e4e005cffc08ba5f3bad..91df68a9044f6d112d771bdf10b24f16ae5d51d9 100644 (file)
@@ -49,6 +49,13 @@ fclose(FILE *fp)
 {
        int r;
 
 {
        int r;
 
+       if (!__sdidinit)
+               __sinit();
+
+       if (fp == NULL) {
+               errno = EFAULT;
+               return (EOF);
+       }
        if (fp->_flags == 0) {  /* not open! */
                errno = EBADF;
                return (EOF);
        if (fp->_flags == 0) {  /* not open! */
                errno = EBADF;
                return (EOF);
@@ -65,7 +72,7 @@ fclose(FILE *fp)
                FREELB(fp);
        fp->_file = -1;
        fp->_r = fp->_w = 0;    /* Mess up if reaccessed. */
                FREELB(fp);
        fp->_file = -1;
        fp->_r = fp->_w = 0;    /* Mess up if reaccessed. */
-       fp->_flags = 0;         /* Release this FILE for reuse. */
+       __sfprelease(fp);       /* Release this FILE for reuse. */
        FUNLOCKFILE(fp);
        return (r);
 }
        FUNLOCKFILE(fp);
        return (r);
 }