Files
uClibc/test/stdio/fclose-loop.c
2007-02-05 01:17:09 +00:00

22 lines
624 B
C

/* From: Denis Vlasenko <vda.linux@googlemail.com>
* With certain combination of .config options fclose() does not
* remove FILE* pointer from _stdio_openlist. As a result, subsequent
* fopen() may allocate new FILE structure exactly in place of one
* freed by previous fclose(), which then makes _stdio_openlist
* circularlt looped. The following program will enter infinite loop
* trying to walk _stdio_openlist in exit():
*/
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE* fp;
fp = fopen("/dev/null", "r");
fclose(fp);
fp = fopen("/dev/zero", "r");
fclose(fp);
return 0;
}