Loading...
--- /dev/null
+++ Libc/Libc-763.13/stdio/FreeBSD/fclose.c.patch
@@ -0,0 +1,25 @@
+--- fclose.c.bsdnew 2009-11-11 13:33:03.000000000 -0800
++++ fclose.c 2009-11-11 13:33:03.000000000 -0800
+@@ -49,6 +49,13 @@ fclose(FILE *fp)
+ {
+ int r;
+
++ if (!__sdidinit)
++ __sinit();
++
++ if (fp == NULL) {
++ errno = EFAULT;
++ 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. */
+- fp->_flags = 0; /* Release this FILE for reuse. */
++ __sfprelease(fp); /* Release this FILE for reuse. */
+ FUNLOCKFILE(fp);
+ return (r);
+ }