Cyril Hrubis wrote: Hi! > > > I faintly remmeber a similar patch where we decided not to work around > > > for a test harness leaking filedescriptors into testcases. > > > > > > > This also should be a solution, I searched the mailing list and got a > > patch[1]. > > Do you mean adding that close-on-exec flag when opening fd in harness? > > Yes, that way you can be sure that no file descriptors are leaked to the > tests. > Ok, should I send patch v2 like this below? Note: the automation test open04 got passed but I'm not sure if this has a side effect on logs. But from my observation, some tests (with old-API) log can't be collected anymore. --- a/pan/ltp-pan.c +++ b/pan/ltp-pan.c @@ -443,7 +443,7 @@ int main(int argc, char **argv) } if (outputfilename) { - if (!freopen(outputfilename, "a+", stdout)) { + if (!freopen(outputfilename, "a+e", stdout)) { fprintf(stderr, "pan(%s): Error %s (%d) opening output file '%s'\n", panname, strerror(errno), errno, @@ -565,7 +565,7 @@ int main(int argc, char **argv) } else if (starts == -1) //wjh { FILE *f = (FILE *) - 1; - if ((f = fopen(PAN_STOP_FILE, "r")) != 0) { + if ((f = fopen(PAN_STOP_FILE, "r+")) != 0) { printf("Got %s Stopping!\n", PAN_STOP_FILE); fclose(f); unlink(PAN_STOP_FILE); @@ -1277,7 +1277,7 @@ static char *slurp(char *file) int fd; struct stat sbuf; - if ((fd = open(file, O_RDONLY)) < 0) { + if ((fd = open(file, O_RDONLY | O_CLOEXEC)) < 0) { fprintf(stderr, "pan(%s): open(%s,O_RDONLY) failed. errno:%d %s\n", panname, file, errno, strerror(errno)); @@ -1372,7 +1372,7 @@ static void write_kmsg(const char *fmt, ...) FILE *kmsg; va_list ap; - if ((kmsg = fopen("/dev/kmsg", "r+")) == NULL) { + if ((kmsg = fopen("/dev/kmsg", "r+e")) == NULL) { fprintf(stderr, "Error %s: (%d) opening /dev/kmsg\n", strerror(errno), errno); exit(1); -- Regards, Li Wang