Bug#35624: libc6: pclose() is broken
Package: libc6
Version: 2.1.1-0.1
Severity: normal
Followed source(from man-db's configure) is test program for pclose().
On glibc2.0.7(slink), this program return 0, But on glibc2.1.1 it
return 1.
I don't know this solution.
#include <stdio.h>
#include <sys/wait.h>
int
try_pclose (FILE *f, int expected)
{
int s;
s = pclose (f);
if (s != -1 && WIFEXITED (s))
return WEXITSTATUS (s) != expected;
else
return 1;
}
int
main (void)
{
FILE *f, *t;
int i, sf, st;
for (i = 0; i <= 1; ++i) {
f = popen ("false", "r");
sleep (1);
t = popen ("true", "r");
sleep (1);
if (i) {
st = try_pclose (t, 0);
sf = try_pclose (f, 1);
} else {
sf = try_pclose (f, 1);
st = try_pclose (t, 0);
}
if (sf || st) exit(1);
}
exit(0);
}
Thanks.
--
UNO Takeshi
Reply to: