diff options
author | Renato Botelho <garga@FreeBSD.org> | 2019-03-13 15:04:38 +0000 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2019-03-13 15:04:38 +0000 |
commit | 6e12d9ed5b9333757a0bd494c041b758dd3317a0 (patch) | |
tree | 558c5582e5625173e0252be12b4765691ede594a /shells/scponly | |
parent | f6912466eb6c0ad9aa04c4ab5a9ffafc47f69adf (diff) | |
download | ports-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/Makefile | 15 | ||||
-rw-r--r-- | shells/scponly/files/patch-helper.c | 19 |
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); |