git: d9f28ee265f9 - main - net/tsocks: Fix erroneous substitution
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Nov 2022 07:53:12 UTC
The branch main has been updated by ehaupt: URL: https://cgit.FreeBSD.org/ports/commit/?id=d9f28ee265f94f4bcedb7d24648042ca1325c230 commit d9f28ee265f94f4bcedb7d24648042ca1325c230 Author: Emanuel Haupt <ehaupt@FreeBSD.org> AuthorDate: 2022-11-10 07:40:57 +0000 Commit: Emanuel Haupt <ehaupt@FreeBSD.org> CommitDate: 2022-11-10 07:49:19 +0000 net/tsocks: Fix erroneous substitution When patching the wrapper script for /usr to ${PREFIX} a part in a sed statement gets substituted that should be escaped. Adjust sed statement in a way that it doesn't break after patching ${PREFIX}. While here: - move a REINPLACE_CMD operation to a pre-existing patch file - pacify portclippy - reformat with portfmt PR: 267670 Reported by: chris@mumac.de --- net/tsocks/Makefile | 24 ++++---- net/tsocks/files/patch-tsocks | 11 ++++ net/tsocks/files/patch-tsocks.c | 118 +++++++++++++++++++++++++++++++++++++++- 3 files changed, 138 insertions(+), 15 deletions(-) diff --git a/net/tsocks/Makefile b/net/tsocks/Makefile index 2f67b428b335..b7930504b128 100644 --- a/net/tsocks/Makefile +++ b/net/tsocks/Makefile @@ -1,6 +1,6 @@ PORTNAME= tsocks DISTVERSION= 1.8.b5 -PORTREVISION= 8 +PORTREVISION= 9 CATEGORIES= net security MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/1.8%20beta%205 \ http://ftp1.sourceforge.net/tsocks/ \ @@ -17,29 +17,27 @@ USES= gmake USE_LDCONFIG= yes GNU_CONFIGURE= yes +CONFIGURE_ARGS= --libdir=${PREFIX}/lib \ + --with-conf=${PREFIX}/etc/tsocks.conf -WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/.b.*//} +SUB_FILES= pkg-message -CONFIGURE_ARGS= --with-conf=${PREFIX}/etc/tsocks.conf \ - --libdir=${PREFIX}/lib +WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION:C/.b.*//} -OPTIONS_DEFINE= DOCS EXAMPLES HOSTNAMES MUTE OLDMETHOD SOCKSDNS -OPTIONS_DEFAULT=HOSTNAMES +OPTIONS_DEFINE= DOCS EXAMPLES HOSTNAMES MUTE OLDMETHOD SOCKSDNS +OPTIONS_DEFAULT= HOSTNAMES HOSTNAMES_DESC= Enable DNS lookups -OLDMETHOD_DESC= Do not use RTLD_NEXT parameter to dlsym MUTE_DESC= Disable all error messages +OLDMETHOD_DESC= Do not use RTLD_NEXT parameter to dlsym SOCKSDNS_DESC= Intercept DNS requests and attempt to force them to use TCP HOSTNAMES_CONFIGURE_OFF= --disable-hostnames -MUTE_CONFIGURE_ON= --disable-debug -OLDMETHOD_CONFIGURE_ON= --enable-oldmethod -SOCKSDNS_CONFIGURE_ON= --enable-socksdns - -SUB_FILES= pkg-message +MUTE_CONFIGURE_ON= --disable-debug +OLDMETHOD_CONFIGURE_ON= --enable-oldmethod +SOCKSDNS_CONFIGURE_ON= --enable-socksdns post-patch: - @${REINPLACE_CMD} -e 's|ufds|fds|g' ${WRKSRC}/tsocks.c @${REINPLACE_CMD} -e 's|/usr|${PREFIX}|' ${WRKSRC}/tsocks post-install: diff --git a/net/tsocks/files/patch-tsocks b/net/tsocks/files/patch-tsocks new file mode 100644 index 000000000000..ee7b7441bf33 --- /dev/null +++ b/net/tsocks/files/patch-tsocks @@ -0,0 +1,11 @@ +--- tsocks.orig 2002-03-16 10:27:18 UTC ++++ tsocks +@@ -53,7 +53,7 @@ case "$1" in + fi + ;; + off) +- export LD_PRELOAD=`echo -n $LD_PRELOAD | sed 's/\/usr\/lib\/libtsocks.so \?//'` ++ export LD_PRELOAD=`echo -n $LD_PRELOAD | sed 's|/usr/lib/libtsocks.so[[:blank:]]*||'` + if [ -z "$LD_PRELOAD" ] + then + unset LD_PRELOAD diff --git a/net/tsocks/files/patch-tsocks.c b/net/tsocks/files/patch-tsocks.c index eed81cc56f58..4694fc25cf92 100644 --- a/net/tsocks/files/patch-tsocks.c +++ b/net/tsocks/files/patch-tsocks.c @@ -1,6 +1,120 @@ --- tsocks.c.orig 2002-07-15 22:50:52 UTC +++ tsocks.c -@@ -852,7 +852,7 @@ static int connect_server(struct connreq +@@ -531,12 +531,12 @@ int poll(POLL_SIGNATURE) { + /* If we're not currently managing any requests we can just + * leave here */ + if (!requests) +- return(realpoll(ufds, nfds, timeout)); ++ return(realpoll(fds, nfds, timeout)); + + get_environment(); + + show_msg(MSGDEBUG, "Intercepted call to poll with %d fds, " +- "0x%08x timeout %d\n", nfds, ufds, timeout); ++ "0x%08x timeout %d\n", nfds, fds, timeout); + + for (conn = requests; conn != NULL; conn = conn->next) + conn->selectevents = 0; +@@ -544,16 +544,16 @@ int poll(POLL_SIGNATURE) { + /* Record what events on our sockets the caller was interested + * in */ + for (i = 0; i < nfds; i++) { +- if (!(conn = find_socks_request(ufds[i].fd, 0))) ++ if (!(conn = find_socks_request(fds[i].fd, 0))) + continue; + show_msg(MSGDEBUG, "Have event checks for socks enabled socket %d\n", + conn->sockid); +- conn->selectevents = ufds[i].events; ++ conn->selectevents = fds[i].events; + monitoring = 1; + } + + if (!monitoring) +- return(realpoll(ufds, nfds, timeout)); ++ return(realpoll(fds, nfds, timeout)); + + /* This is our poll loop. In it we repeatedly call poll(). We + * pass select the same event list as provided by the caller except we +@@ -566,25 +566,25 @@ int poll(POLL_SIGNATURE) { + do { + /* Enable our sockets for the events WE want to hear about */ + for (i = 0; i < nfds; i++) { +- if (!(conn = find_socks_request(ufds[i].fd, 0))) ++ if (!(conn = find_socks_request(fds[i].fd, 0))) + continue; + + /* We always want to know about socket exceptions but they're + * always returned (i.e they don't need to be in the list of + * wanted events to be returned by the kernel */ +- ufds[i].events = 0; ++ fds[i].events = 0; + + /* If we're waiting for a connect or to be able to send + * on a socket we want to get write events */ + if ((conn->state == SENDING) || (conn->state == CONNECTING)) +- ufds[i].events |= POLLOUT; ++ fds[i].events |= POLLOUT; + /* If we're waiting to receive data we want to get + * read events */ + if (conn->state == RECEIVING) +- ufds[i].events |= POLLIN; ++ fds[i].events |= POLLIN; + } + +- nevents = realpoll(ufds, nfds, timeout); ++ nevents = realpoll(fds, nfds, timeout); + /* If there were no events we must have timed out or had an error */ + if (nevents <= 0) + break; +@@ -597,29 +597,29 @@ int poll(POLL_SIGNATURE) { + continue; + + /* Find the socket in the poll list */ +- for (i = 0; ((i < nfds) && (ufds[i].fd != conn->sockid)); i++) ++ for (i = 0; ((i < nfds) && (fds[i].fd != conn->sockid)); i++) + /* Empty Loop */; + if (i == nfds) + continue; + + show_msg(MSGDEBUG, "Checking socket %d for events\n", conn->sockid); + +- if (!ufds[i].revents) { ++ if (!fds[i].revents) { + show_msg(MSGDEBUG, "No events on socket\n"); + continue; + } + + /* Clear any read or write events on the socket, we'll reset + * any that are necessary later. */ +- setevents = ufds[i].revents; ++ setevents = fds[i].revents; + if (setevents & POLLIN) { + show_msg(MSGDEBUG, "Socket had read event\n"); +- ufds[i].revents &= ~POLLIN; ++ fds[i].revents &= ~POLLIN; + nevents--; + } + if (setevents & POLLOUT) { + show_msg(MSGDEBUG, "Socket had write event\n"); +- ufds[i].revents &= ~POLLOUT; ++ fds[i].revents &= ~POLLOUT; + nevents--; + } + if (setevents & (POLLERR | POLLNVAL | POLLHUP)) +@@ -669,10 +669,10 @@ int poll(POLL_SIGNATURE) { + + /* Now restore the events polled in each of the blocks */ + for (i = 0; i < nfds; i++) { +- if (!(conn = find_socks_request(ufds[i].fd, 1))) ++ if (!(conn = find_socks_request(fds[i].fd, 1))) + continue; + +- ufds[i].events = conn->selectevents; ++ fds[i].events = conn->selectevents; + } + + return(nevents); +@@ -852,7 +852,7 @@ static int connect_server(struct connreq *conn) { sizeof(conn->serveraddr)); show_msg(MSGDEBUG, "Connect returned %d, errno is %d\n", rc, errno); @@ -9,7 +123,7 @@ if (errno != EINPROGRESS) { show_msg(MSGERR, "Error %d attempting to connect to SOCKS " "server (%s)\n", errno, strerror(errno)); -@@ -862,6 +862,7 @@ static int connect_server(struct connreq +@@ -862,6 +862,7 @@ static int connect_server(struct connreq *conn) { conn->state = CONNECTING; } } else {