aboutsummaryrefslogtreecommitdiff
path: root/shells/scponly
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2019-03-13 15:04:38 +0000
committerRenato Botelho <garga@FreeBSD.org>2019-03-13 15:04:38 +0000
commit6e12d9ed5b9333757a0bd494c041b758dd3317a0 (patch)
tree558c5582e5625173e0252be12b4765691ede594a /shells/scponly
parentf6912466eb6c0ad9aa04c4ab5a9ffafc47f69adf (diff)
downloadports-6e12d9ed5b9333757a0bd494c041b758dd3317a0.tar.gz
ports-6e12d9ed5b9333757a0bd494c041b758dd3317a0.zip
shells/scponly: fix segfault on FreeBSD 11
Patch introduced in r493861 to fix segfault on FreeBSD 12+ broke it on FreeBSD 11. This new version fixes it on both versions. While here, pet portlint a bit moving USES to proper place and removing RUN_DEPENDS := BUILD_DEPENDS adding individual run depends where it's necessary. PR: 235810 Submitted by: Stewart Morgan <stewart.morgan@gmail.com> Sponsored by: Rubicon Communications, LLC (Netgate)
Notes
Notes: svn path=/head/; revision=495579
Diffstat (limited to 'shells/scponly')
-rw-r--r--shells/scponly/Makefile15
-rw-r--r--shells/scponly/files/patch-helper.c19
2 files changed, 19 insertions, 15 deletions
diff --git a/shells/scponly/Makefile b/shells/scponly/Makefile
index 9bbd7758d435..79caeadedd08 100644
--- a/shells/scponly/Makefile
+++ b/shells/scponly/Makefile
@@ -3,7 +3,7 @@
PORTNAME= scponly
PORTVERSION= 4.8.20110526
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= shells security
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}-snapshots
DISTNAME= ${PORTNAME}-20110526
@@ -13,9 +13,9 @@ COMMENT= Tiny shell that only permits scp and sftp
LICENSE= BSD2CLAUSE
-PORTDOCS= BUILDING-JAILS.TXT INSTALL README SECURITY
-
USES= tar:tgz
+
+PORTDOCS= BUILDING-JAILS.TXT INSTALL README SECURITY
GNU_CONFIGURE= yes
OPTIONS_DEFINE= WILDCARDS GFTP CHROOT RSYNC SCP SVN SVNSERVE UNISON WINSCP \
@@ -34,7 +34,8 @@ WINSCP_DESC= WinSCP support
OPTIONS_SUB= yes
.if !exists(/usr/bin/sftp)
-BUILD_DEPENDS= ${LOCALBASE}/bin/sftp:security/openssh-portable
+BUILD_DEPENDS+= openssh-portable>0:security/openssh-portable
+RUN_DEPENDS+= openssh-portable>0:security/openssh-portable
.endif
DEFAULT_CHDIR_CONFIGURE_ON= --with-default-chdir=${SCPONLY_DEFAULT_CHDIR}
WILDCARDS_CONFIGURE_ENABLE= wildcards
@@ -42,18 +43,20 @@ GFTP_CONFIGURE_ENABLE= gftp-compat
CHROOT_CONFIGURE_ENABLE= chrooted-binary
CHROOT_USE= RC_SUBR=scponlyc
RSYNC_BUILD_DEPENDS= rsync:net/rsync
+RSYNC_RUN_DEPENDS= rsync:net/rsync
RSYNC_CONFIGURE_ENABLE= rsync-compat
SCP_CONFIGURE_ENABLE= scp-compat
SVN_CONFIGURE_ENABLE= svn-compat
SVN_BUILD_DEPENDS= svn:devel/subversion
+SVN_RUN_DEPENDS= svn:devel/subversion
SVNSERVE_BUILD_DEPENDS= svn:devel/subversion
+SVNSERVE_RUN_DEPENDS= svn:devel/subversion
SVNSERVE_CONFIGURE_ENABLE= svnserv-compat
UNISON_BUILD_DEPENDS= unison:net/unison
+UNISON_RUN_DEPENDS= unison:net/unison
UNISON_CONFIGURE_ENABLE= unison-compat
WINSCP_CONFIGURE_ENABLE= winscp-compat
-RUN_DEPENDS:= ${BUILD_DEPENDS}
-
post-patch:
@${ECHO_MSG} "In addition to knobs available from the OPTIONS dialog,"
@${ECHO_MSG} "you may set SCPONLY_DEFAULT_CHDIR to make users 'cd' to"
diff --git a/shells/scponly/files/patch-helper.c b/shells/scponly/files/patch-helper.c
index 6d04529d5cde..bd90445ad78b 100644
--- a/shells/scponly/files/patch-helper.c
+++ b/shells/scponly/files/patch-helper.c
@@ -1,26 +1,27 @@
--- helper.c.orig 2010-09-08 05:58:11 UTC
+++ helper.c
-@@ -323,16 +323,20 @@ int valid_arg_vector(char **av)
+@@ -323,16 +323,22 @@ int valid_arg_vector(char **av)
char *substitute_known_path(char *request)
{
cmd_t *cmd=commands;
- char *stripped_req=strdup(basename(request));
-+ char *stripped_req=strdup(request);
-+ stripped_req=basename(stripped_req);
++ char *mrequest=strdup(request);
++ char *stripped_req=strdup(basename(mrequest));
++ free(mrequest);
while (cmd != NULL)
{
-+ char *nname;
++ char *mname;
if (cmd->name == NULL)
break;
- if (exact_match(basename(cmd->name),stripped_req))
-+ nname = strdup(cmd->name);
-+ if (exact_match(basename(nname),stripped_req))
++ mname = strdup(cmd->name);
++ if (exact_match(basename(mname),stripped_req))
{
free(stripped_req); /* discard old pathname */
-- return (strdup(cmd->name));
-+ return (nname);
++ free(mname);
+ return (strdup(cmd->name));
}
-+ free(nname);
++ free(mname);
cmd++;
}
return (stripped_req);