/* 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;
}