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