svn commit: r547289 - in head/net/rdist6: . files
Cy Schubert
cy at FreeBSD.org
Tue Sep 1 19:24:22 UTC 2020
Author: cy
Date: Tue Sep 1 19:24:21 2020
New Revision: 547289
URL: https://svnweb.freebsd.org/changeset/ports/547289
Log:
rdist6 fails to hardlink files with whitespace in them. This
patch fixes that.
PR: 247596
Submitted by: Andre Albsmeier <mail at fbsd.e4m.org>
Reported by: Andre Albsmeier <mail at fbsd.e4m.org>
Added:
head/net/rdist6/files/patch-z-fix_ws_in_hardlinks (contents, props changed)
Modified:
head/net/rdist6/Makefile (contents, props changed)
Modified: head/net/rdist6/Makefile
==============================================================================
--- head/net/rdist6/Makefile Tue Sep 1 19:20:20 2020 (r547288)
+++ head/net/rdist6/Makefile Tue Sep 1 19:24:21 2020 (r547289)
@@ -3,7 +3,7 @@
PORTNAME= rdist
PORTVERSION= 6.1.5
-PORTREVISION= 6
+PORTREVISION= 7
CATEGORIES= net
MASTER_SITES= https://fossies.org/linux/misc/old/ \
http://www.magnicomp.com/download/rdist/
Added: head/net/rdist6/files/patch-z-fix_ws_in_hardlinks
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net/rdist6/files/patch-z-fix_ws_in_hardlinks Tue Sep 1 19:24:21 2020 (r547289)
@@ -0,0 +1,70 @@
+--- src/server.c.ORI 2020-06-27 09:02:15.364442000 +0200
++++ src/server.c 2020-06-27 09:12:23.010090000 +0200
+@@ -1270,17 +1270,34 @@
+ return;
+ }
+
+- oldname = strtok(cp, " ");
+- if (oldname == NULL) {
+- error("hardlink: oldname name not delimited");
+- return;
+- }
++{ unsigned int len;
+
+- newname = strtok((char *)NULL, " ");
+- if (newname == NULL) {
+- error("hardlink: new name not specified");
+- return;
+- }
++ if( *( cp += strspn( cp, " " ) ) == '\0' ) {
++ error("hardlink: oldnamelen name not found");
++ return;
++ }
++
++ len = strtoul( cp, &cp, 10 );
++
++ if( *( cp += strspn( cp, " " ) ) == '\0' ) {
++ error("hardlink: oldname not found");
++ return;
++ }
++ oldname = cp;
++ if( strlen( cp ) < len + 2 ) {
++ error("hardlink: oldname too short or nothing following found");
++ return;
++ }
++ cp += len;
++ *cp++ = '\0';
++
++ if( *( cp += strspn( cp, " " ) ) == '\0' ) {
++ error("hardlink: newname not found");
++ return;
++ }
++
++ newname = cp;
++}
+
+ if (exptilde(expbuf, oldname) == NULL) {
+ error("hardlink: tilde expansion failed");
+--- src/client.c.ORI 2020-06-27 09:02:15.372720000 +0200
++++ src/client.c 2020-06-27 08:32:20.000000000 +0200
+@@ -359,16 +359,16 @@
+ rname, lp->pathname, lp->src, lp->target);
+
+ if (*lp->target == CNULL)
+- (void) sendcmd(C_RECVHARDLINK, "%o %s %s",
+- opts, lp->pathname, rname);
++ (void) sendcmd(C_RECVHARDLINK, "%o %d %s %s",
++ opts, strlen(lp->pathname), lp->pathname, rname);
+ else {
+ lname = buff;
+ strcpy(lname, remfilename(lp->src, lp->target,
+ lp->pathname, rname,
+ destdir));
+ debugmsg(DM_MISC, "sendhardlink: lname=%s\n", lname);
+- (void) sendcmd(C_RECVHARDLINK, "%o %s %s",
+- opts, lname, rname);
++ (void) sendcmd(C_RECVHARDLINK, "%o %d %s %s",
++ opts, strlen(lname), lname, rname);
+ }
+
+ return(response());
More information about the svn-ports-head
mailing list