diff --git a/configure b/configure index 7ceb122..46738b3 100755 --- a/configure +++ b/configure @@ -220,9 +220,6 @@ check_define __FreeBSD__ && bsd_detected=true check_define __OpenBSD__ && { bsd_detected=true echo "CFLAGS+=-DIS_OPENBSD">>config.mak -check_compile_run 'whether OpenBSDs fclose() (illegally) calls close()' \ -'#include \n#include\nint close(int x){exit(0);}int main(){fclose(stdin);return 1;}' && \ -OUR_CPPFLAGS="$OUR_CPPFLAGS -DBROKEN_FCLOSE" } check_define __sun && check_define __SVR4 && solaris_detected=true check_define __HAIKU__ && haiku_detected=true diff --git a/src/libproxychains.c b/src/libproxychains.c index 84a8f00..38f4c15 100644 --- a/src/libproxychains.c +++ b/src/libproxychains.c @@ -115,7 +115,7 @@ typedef struct { unsigned int first, last, flags; } close_range_args_t; -/* If there is some `close` or `close_range` system call before do_init, +/* If there is some `close` or `close_range` system call before do_init, we buffer it, and actually execute them in do_init. */ static int close_fds[16]; static int close_fds_cnt = 0; @@ -560,9 +560,7 @@ static void get_chain_data(proxy_data * pd, unsigned int *proxy_count, chain_typ } } } -#ifndef BROKEN_FCLOSE fclose(file); -#endif if(!count) { fprintf(stderr, "error: no valid proxy found in config\n"); exit(1); @@ -639,7 +637,7 @@ HOOKFUNC(int, close_range, unsigned first, unsigned last, int flags) { int protected_fds[] = {req_pipefd[0], req_pipefd[1], resp_pipefd[0], resp_pipefd[1]}; intsort(protected_fds, 4); /* We are skipping protected_fds while calling true_close_range() - * If protected_fds cut the range into some sub-ranges, we close sub-ranges BEFORE cut point in the loop. + * If protected_fds cut the range into some sub-ranges, we close sub-ranges BEFORE cut point in the loop. * [first, cut1-1] , [cut1+1, cut2-1] , [cut2+1, cut3-1] * Finally, we delete the remaining sub-range, outside the loop. [cut3+1, tail] */