diff options
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | REFLECTION-PHP7 | 276 | ||||
-rw-r--r-- | php-pecl-ssh2-php7.spec | 316 | ||||
-rw-r--r-- | ssh2-php7013.patch | 77 |
4 files changed, 7 insertions, 669 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1ab5c4f --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +package-*.xml +*.tgz +*.tar.gz +*.tar.xz +*.tar.xz.asc +*.src.rpm +*/*rpm diff --git a/REFLECTION-PHP7 b/REFLECTION-PHP7 deleted file mode 100644 index 46c5f04..0000000 --- a/REFLECTION-PHP7 +++ /dev/null @@ -1,276 +0,0 @@ -Extension [ <persistent> extension #76 ssh2 version 1.0 ] { - - - Constants [21] { - Constant [ integer SSH2_FINGERPRINT_MD5 ] { 0 } - Constant [ integer SSH2_FINGERPRINT_SHA1 ] { 1 } - Constant [ integer SSH2_FINGERPRINT_HEX ] { 0 } - Constant [ integer SSH2_FINGERPRINT_RAW ] { 2 } - Constant [ integer SSH2_TERM_UNIT_CHARS ] { 0 } - Constant [ integer SSH2_TERM_UNIT_PIXELS ] { 1 } - Constant [ string SSH2_DEFAULT_TERMINAL ] { vanilla } - Constant [ integer SSH2_DEFAULT_TERM_WIDTH ] { 80 } - Constant [ integer SSH2_DEFAULT_TERM_HEIGHT ] { 25 } - Constant [ integer SSH2_DEFAULT_TERM_UNIT ] { 0 } - Constant [ integer SSH2_STREAM_STDIO ] { 0 } - Constant [ integer SSH2_STREAM_STDERR ] { 1 } - Constant [ integer SSH2_POLLIN ] { 1 } - Constant [ integer SSH2_POLLEXT ] { 2 } - Constant [ integer SSH2_POLLOUT ] { 4 } - Constant [ integer SSH2_POLLERR ] { 8 } - Constant [ integer SSH2_POLLHUP ] { 16 } - Constant [ integer SSH2_POLLNVAL ] { 32 } - Constant [ integer SSH2_POLL_SESSION_CLOSED ] { 16 } - Constant [ integer SSH2_POLL_CHANNEL_CLOSED ] { 128 } - Constant [ integer SSH2_POLL_LISTENER_CLOSED ] { 128 } - } - - - Functions { - Function [ <internal:ssh2> function ssh2_connect ] { - - - Parameters [2] { - Parameter #0 [ <required> $host ] - Parameter #1 [ <required> $port ] - } - } - Function [ <internal:ssh2> function ssh2_disconnect ] { - - - Parameters [1] { - Parameter #0 [ <required> $resource ] - } - } - Function [ <internal:ssh2> function ssh2_methods_negotiated ] { - - - Parameters [1] { - Parameter #0 [ <required> $resource ] - } - } - Function [ <internal:ssh2> function ssh2_fingerprint ] { - - - Parameters [2] { - Parameter #0 [ <required> $resource ] - Parameter #1 [ <required> $flags ] - } - } - Function [ <internal:ssh2> function ssh2_auth_none ] { - - - Parameters [2] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $username ] - } - } - Function [ <internal:ssh2> function ssh2_auth_password ] { - - - Parameters [3] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $username ] - Parameter #2 [ <required> $password ] - } - } - Function [ <internal:ssh2> function ssh2_auth_pubkey_file ] { - - - Parameters [5] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $username ] - Parameter #2 [ <required> $pubkeyfile ] - Parameter #3 [ <required> $privkeyfile ] - Parameter #4 [ <optional> $passphrase ] - } - } - Function [ <internal:ssh2> function ssh2_auth_hostbased_file ] { - - - Parameters [7] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $username ] - Parameter #2 [ <required> $hostname ] - Parameter #3 [ <required> $pubkeyfile ] - Parameter #4 [ <required> $privkeyfile ] - Parameter #5 [ <optional> $passphrase ] - Parameter #6 [ <optional> $local_username ] - } - } - Function [ <internal:ssh2> function ssh2_forward_listen ] { - } - Function [ <internal:ssh2> function ssh2_forward_accept ] { - } - Function [ <internal:ssh2> function ssh2_shell ] { - - - Parameters [6] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <optional> $termtype ] - Parameter #2 [ <optional> $env ] - Parameter #3 [ <optional> $width ] - Parameter #4 [ <optional> $height ] - Parameter #5 [ <optional> $width_height_type ] - } - } - Function [ <internal:ssh2> function ssh2_exec ] { - - - Parameters [7] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $command ] - Parameter #2 [ <optional> $pty ] - Parameter #3 [ <optional> $env ] - Parameter #4 [ <optional> $width ] - Parameter #5 [ <optional> $height ] - Parameter #6 [ <optional> $width_height_type ] - } - } - Function [ <internal:ssh2> function ssh2_tunnel ] { - - - Parameters [3] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $host ] - Parameter #2 [ <required> $port ] - } - } - Function [ <internal:ssh2> function ssh2_scp_recv ] { - - - Parameters [3] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $remote_file ] - Parameter #2 [ <required> $local_file ] - } - } - Function [ <internal:ssh2> function ssh2_scp_send ] { - - - Parameters [4] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $remote_file ] - Parameter #2 [ <required> $local_file ] - Parameter #3 [ <optional> $create_mode ] - } - } - Function [ <internal:ssh2> function ssh2_fetch_stream ] { - - - Parameters [2] { - Parameter #0 [ <required> $channel ] - Parameter #1 [ <required> $stream_id ] - } - } - Function [ <internal:ssh2> function ssh2_poll ] { - - - Parameters [1] { - Parameter #0 [ <required> &$param0 ] - } - } - Function [ <internal:ssh2> function ssh2_sftp ] { - - - Parameters [1] { - Parameter #0 [ <required> $session ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_rename ] { - - - Parameters [3] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $from ] - Parameter #2 [ <required> $to ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_unlink ] { - - - Parameters [2] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $filename ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_mkdir ] { - - - Parameters [4] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $dirname ] - Parameter #2 [ <optional> $mode ] - Parameter #3 [ <optional> $recursive ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_rmdir ] { - - - Parameters [2] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $dirname ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_chmod ] { - - - Parameters [3] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $filename ] - Parameter #2 [ <required> $mode ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_stat ] { - - - Parameters [2] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $path ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_lstat ] { - - - Parameters [2] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $path ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_symlink ] { - - - Parameters [3] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $target ] - Parameter #2 [ <required> $link ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_readlink ] { - - - Parameters [2] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $link ] - } - } - Function [ <internal:ssh2> function ssh2_sftp_realpath ] { - - - Parameters [2] { - Parameter #0 [ <required> $sftp ] - Parameter #1 [ <required> $filename ] - } - } - Function [ <internal:ssh2> function ssh2_publickey_init ] { - - - Parameters [1] { - Parameter #0 [ <required> $session ] - } - } - Function [ <internal:ssh2> function ssh2_publickey_add ] { - - - Parameters [5] { - Parameter #0 [ <required> $pkey ] - Parameter #1 [ <required> $algoname ] - Parameter #2 [ <required> $blob ] - Parameter #3 [ <optional> $overwrite ] - Parameter #4 [ <optional> $attributes ] - } - } - Function [ <internal:ssh2> function ssh2_publickey_remove ] { - - - Parameters [3] { - Parameter #0 [ <required> $pkey ] - Parameter #1 [ <required> $algoname ] - Parameter #2 [ <required> $blob ] - } - } - Function [ <internal:ssh2> function ssh2_publickey_list ] { - - - Parameters [1] { - Parameter #0 [ <required> $pkey ] - } - } - Function [ <internal:ssh2> function ssh2_auth_agent ] { - - - Parameters [2] { - Parameter #0 [ <required> $session ] - Parameter #1 [ <required> $username ] - } - } - } -} - diff --git a/php-pecl-ssh2-php7.spec b/php-pecl-ssh2-php7.spec deleted file mode 100644 index a519b6e..0000000 --- a/php-pecl-ssh2-php7.spec +++ /dev/null @@ -1,316 +0,0 @@ -# remirepo spec file for php-pecl-ssh2 -# with SCL compatibility -# -# Copyright (c) 2011-2017 Remi Collet -# -# Fedora spec file for php-pecl-ssh2 -# -# License: MIT -# -# Please, preserve the changelog entries -# -%if 0%{?scl:1} -%global sub_prefix %{scl_prefix} -%scl_package php-pecl-ssh2 -%endif - -# See https://github.com/php/pecl-networking-ssh2/commits/master -%global gh_commit 50d97a52c39166d59e59222a20e841f3f3ce594d -%global gh_short %(c=%{gh_commit}; echo ${c:0:7}) -#global gh_date 20160113 -%global gh_owner php -%global gh_project pecl-networking-ssh2 -%global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} -%global pecl_name ssh2 -%global ini_name 40-%{pecl_name}.ini - -Name: %{?sub_prefix}php-pecl-ssh2 -Version: 1.0 -%if 0%{?gh_date} -Release: 0.2.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} -Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}%{?prever}-%{gh_short}.tar.gz -%else -Release: 5%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} -Source0: http://pecl.php.net/get/ssh2-%{version}.tgz -%endif -Summary: Bindings for the libssh2 library - -%global buildver %(pkg-config --silence-errors --modversion libssh2 2>/dev/null || echo 65536) - -Patch0: %{pecl_name}-php7013.patch - -License: PHP -Group: Development/Languages -URL: http://pecl.php.net/package/ssh2 - -BuildRequires: libssh2-devel >= 1.2 -BuildRequires: %{?scl_prefix}php-devel > 7 -BuildRequires: %{?scl_prefix}php-pear - -Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} -Requires: %{?scl_prefix}php(api) = %{php_core_api} -Requires: libssh2%{?_isa} >= %{buildver} -%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} - -Provides: %{?scl_prefix}php-%{pecl_name} = %{version} -Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} -Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} -Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} -Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} -%endif - -%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} -# Other third party repo stuff -Obsoletes: php53-pecl-%{pecl_name} <= %{version} -Obsoletes: php53u-pecl-%{pecl_name} <= %{version} -Obsoletes: php54-pecl-%{pecl_name} <= %{version} -Obsoletes: php54w-pecl-%{pecl_name} <= %{version} -Obsoletes: php55u-pecl-%{pecl_name} <= %{version} -Obsoletes: php55w-pecl-%{pecl_name} <= %{version} -Obsoletes: php56u-pecl-%{pecl_name} <= %{version} -Obsoletes: php56w-pecl-%{pecl_name} <= %{version} -Obsoletes: php70u-pecl-%{pecl_name} <= %{version} -Obsoletes: php70w-pecl-%{pecl_name} <= %{version} -%if "%{php_version}" > "7.1" -Obsoletes: php71u-pecl-%{pecl_name} <= %{version} -Obsoletes: php71w-pecl-%{pecl_name} <= %{version} -%endif -%endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter private shared -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} -%endif - - -%description -Bindings to the libssh2 library which provide access to resources -(shell, remote exec, tunneling, file transfer) on a remote machine using -a secure cryptographic transport. - -Documentation: http://php.net/ssh2 - -Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. - - -%prep -%setup -c -q -%if 0%{?gh_date} -mv %{gh_project}-%{gh_commit} NTS -%{__php} -r ' - $pkg = simplexml_load_file("NTS/package.xml"); - $pkg->date = substr("%{gh_date}",0,4)."-".substr("%{gh_date}",4,2)."-".substr("%{gh_date}",6,2); - $pkg->version->release = "%{version}dev"; - $pkg->stability->release = "devel"; - $pkg->asXML("package.xml"); -' -%else -mv %{pecl_name}-%{version} NTS -%endif - -# Don't install/register tests -sed -e 's/role="test"/role="src"/' \ - %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ - -i package.xml - -cd NTS -%patch0 -p1 -b .php7013 - -extver=$(sed -n '/#define PHP_SSH2_VERSION/{s/.* "//;s/".*$//;p}' php_ssh2.h) -if test "x${extver}" != "x%{version}%{?gh_date:-dev}"; then - : Error: Upstream version is now ${extver}, expecting %{version}%{?gh_date:-dev}. - : Update the pdover macro and rebuild. - exit 1 -fi -cd .. - -cat > %{ini_name} << 'EOF' -; Enable ssh2 extension module -extension=ssh2.so -EOF - -%if %{with_zts} -: Duplicate source tree for NTS / ZTS build -cp -pr NTS ZTS -%endif - - -%build -cd NTS -%{_bindir}/phpize -%configure --with-php-config=%{_bindir}/php-config -make %{?_smp_mflags} - -%if %{with_zts} -cd ../ZTS -%{_bindir}/zts-phpize -%configure --with-php-config=%{_bindir}/zts-php-config -make %{?_smp_mflags} -%endif - - -%install -make -C NTS install INSTALL_ROOT=%{buildroot} - -# Install XML package description -install -Dpm 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml - -# install config file -install -Dpm644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} - -%if %{with_zts} -make -C ZTS install INSTALL_ROOT=%{buildroot} -install -Dpm644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} -%endif - -# Documentation -for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') -do install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i -done - - - -%check -: Minimal load test for NTS extension -%{__php} --no-php-ini \ - --define extension_dir=%{buildroot}%{php_extdir} \ - --define extension=%{pecl_name}.so \ - --modules | grep %{pecl_name} - -%if %{with_zts} -: Minimal load test for ZTS extension -%{__ztsphp} --no-php-ini \ - --define extension_dir=%{buildroot}%{php_ztsextdir} \ - --define extension=%{pecl_name}.so \ - --modules | grep %{pecl_name} -%endif - - -%if 0%{?fedora} < 24 -# when pear installed alone, after us -%triggerin -- %{?scl_prefix}php-pear -if [ -x %{__pecl} ] ; then - %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : -fi - -# posttrans as pear can be installed after us -%posttrans -%if 0%{?gh_date} -echo -e "\n** %{name} is an experimental package, built from a development sources snapshot **\n" -%endif -if [ -x %{__pecl} ] ; then - %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : -fi - -%postun -if [ $1 -eq 0 -a -x %{__pecl} ] ; then - %{pecl_uninstall} %{pecl_name} >/dev/null || : -fi -%endif - - -%files -%{?_licensedir:%license NTS/LICENSE} -%{!?_licensedir:%doc %{pecl_docdir}/%{pecl_name}} -%{pecl_xmldir}/%{name}.xml - -%config(noreplace) %{php_inidir}/%{ini_name} -%{php_extdir}/ssh2.so - -%if %{with_zts} -%config(noreplace) %{php_ztsinidir}/%{ini_name} -%{php_ztsextdir}/ssh2.so -%endif - - -%changelog -* Thu Dec 1 2016 Remi Collet <remi@fedoraproject.org> - 1.0-5 -- rebuild with PHP 7.1.0 GA - -* Thu Nov 10 2016 Remi Collet <remi@fedoraproject.org> - 1.0-4 -- add patch for parse_url change in PHP 7.0.13 - -* Wed Sep 14 2016 Remi Collet <remi@fedoraproject.org> - 1.0-2 -- rebuild for PHP 7.1 new API version - -* Sun Jun 12 2016 Remi Collet <remi@fedoraproject.org> - 1.0-1 -- update to 1.0 - -* Wed Jan 13 2016 Remi Collet <remi@fedoraproject.org> - 0.13-0.1.20160113git50d97a5 -- update to 0.13-dev, git snapshot, for PHP 7 - -* Tue Jun 23 2015 Remi Collet <remi@fedoraproject.org> - 0.12-6 -- allow build against rh-php56 (as more-php56) -- drop runtime dependency on pear, new scriptlets - -* Wed Dec 24 2014 Remi Collet <remi@fedoraproject.org> - 0.12-5.1 -- Fedora 21 SCL mass rebuild - -* Sat Dec 20 2014 Remi Collet <remi@fedoraproject.org> - 0.12-5 -- rebuild for new libssh2 in EL-5 -- ensure dependency on libssh2 used at buildtime - -* Mon Aug 25 2014 Remi Collet <rcollet@redhat.com> - 0.12-4 -- improve SCL build - -* Thu Apr 17 2014 Remi Collet <remi@fedoraproject.org> - 0.12-3 -- add numerical prefix to extension configuration file (php 5.6) - -* Sat Nov 30 2013 Remi Collet <RPMS@FamilleCollet.com> - 0.12-2 -- cleanups for Copr -- adap for SCL -- install doc in pecl doc_dir - -* Fri Nov 30 2012 Remi Collet <RPMS@FamilleCollet.com> - 0.12-1.1 -- also provides php-ssh2 - -* Thu Oct 18 2012 Remi Collet <RPMS@FamilleCollet.com> - 0.12-1 -- update to 0.12 -- raise dependency on libssh2 >= 1.2 - -* Sun Nov 13 2011 Remi Collet <remi@fedoraproject.org> - 0.11.3-2 -- build against php 5.4 - -* Tue Oct 04 2011 Remi Collet <RPMS@FamilleCollet.com> - 0.11.3-1 -- update to 0.11.3 -- zts extension - -* Tue Aug 16 2011 Remi Collet <RPMS@FamilleCollet.com> - 0.11.2-1.1 -- EL-5 rebuild for libssh2 -- add filter - -* Sat Apr 16 2011 Remi Collet <RPMS@FamilleCollet.com> - 0.11.2-1 -- update to 0.11.2 -- add minimal %%check - -* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.11.0-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Thu Jan 14 2010 Chris Weyl <cweyl@alumni.drew.edu> 0.11.0-6 -- bump for libssh2 rebuild - - -* Mon Sep 21 2009 Chris Weyl <cweyl@alumni.drew.edu> - 0.11.0-5 -- rebuild for libssh2 1.2 - -* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.11.0-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Sun Jul 12 2009 Remi Collet <Fedora@FamilleCollet.com> - 0.11.0-3 -- add ssh2-php53.patch -- rebuild for new PHP 5.3.0 ABI (20090626) - -* Thu Feb 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.11.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Sat Dec 20 2008 Itamar Reis Peixoto <itamar@ispbrasil.com.br> 0.11.0-1 -- convert package.xml to V2 format, update to 0.11.0 #BZ 476405 - -* Sat Nov 15 2008 Itamar Reis Peixoto <itamar@ispbrasil.com.br> 0.10-2 -- Install pecl xml, license and readme files - -* Wed Jul 16 2008 Itamar Reis Peixoto <itamar@ispbrasil.com.br> 0.10-1 -- Initial release diff --git a/ssh2-php7013.patch b/ssh2-php7013.patch deleted file mode 100644 index 099d442..0000000 --- a/ssh2-php7013.patch +++ /dev/null @@ -1,77 +0,0 @@ -Adapted for 1.0 from: - - -From 17680cf039f0cfac53b5a2531fdb715b95e9cc42 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Thu, 10 Nov 2016 09:16:02 +0100 -Subject: [PATCH] fix for PHP 7.0.13 where php_url_parse fails - ---- - ssh2_fopen_wrappers.c | 16 +++++++++++----- - 1 file changed, 11 insertions(+), 5 deletions(-) - -diff --git a/ssh2_fopen_wrappers.c b/ssh2_fopen_wrappers.c -index c8d1d07..17444dc 100644 ---- a/ssh2_fopen_wrappers.c -+++ b/ssh2_fopen_wrappers.c -@@ -213,10 +213,19 @@ - php_url *resource; - zval *methods = NULL, *callbacks = NULL, zsession, *tmpzval; - long resource_id; -- char *s, *username = NULL, *password = NULL, *pubkey_file = NULL, *privkey_file = NULL; -+ char *h, *s, *username = NULL, *password = NULL, *pubkey_file = NULL, *privkey_file = NULL; - int username_len = 0, password_len = 0; - -- resource = php_url_parse(path); -+ h = strstr(path, "Resource id #"); -+ if (h) { -+ /* Starting with 5.6.28, 7.0.13 need to be clean, else php_url_parse will fail */ -+ char *tmp = estrdup(path); -+ strncpy(tmp + (h-path), h + sizeof("Resource id #")-1, strlen(tmp)); -+ resource = php_url_parse(tmp); -+ efree(tmp); -+ } else { -+ resource = php_url_parse(path); -+ } - if (!resource || !resource->path) { - return NULL; - } -@@ -247,9 +256,6 @@ - - /* Look for a resource ID to reuse a session */ - s = resource->host; -- if (strncmp(resource->host, "Resource id #", sizeof("Resource id #") - 1) == 0) { -- s = resource->host + sizeof("Resource id #") - 1; -- } - if (is_numeric_string(s, strlen(s), &resource_id, NULL, 0) == IS_LONG) { - php_ssh2_sftp_data *sftp_data; - --- -2.1.4 - -From 756e2f1369f2d5ff006222d978806f4fd91659e1 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@php.net> -Date: Thu, 10 Nov 2016 09:33:25 +0100 -Subject: [PATCH] fix Invalid write of size 1 - ---- - ssh2_fopen_wrappers.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/ssh2_fopen_wrappers.c b/ssh2_fopen_wrappers.c -index 17444dc..ffbd6e3 100644 ---- a/ssh2_fopen_wrappers.c -+++ b/ssh2_fopen_wrappers.c -@@ -220,7 +220,8 @@ php_url *php_ssh2_fopen_wraper_parse_path(const char *path, char *type, php_stre - if (h) { - /* Starting with 5.6.28, 7.0.13 need to be clean, else php_url_parse will fail */ - char *tmp = estrdup(path); -- strncpy(tmp + (h-path), h + sizeof("Resource id #")-1, strlen(tmp)); -+ -+ strncpy(tmp + (h-path), h + sizeof("Resource id #")-1, strlen(tmp)-sizeof("Resource id #")); - resource = php_url_parse(tmp); - efree(tmp); - } else { --- -2.1.4 - |