mirror of
https://git.busybox.net/uClibc
synced 2025-10-14 10:27:40 +08:00
22 lines
624 B
C
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;
|
|
}
|