From 9318f2d6686f4190d0ba675c7a0274999c8b4bd4 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 19 Apr 2021 16:00:47 +0200 Subject: [PATCH] update icewind/smb to 3.4.1 Signed-off-by: Robin Appelman --- apps/files_external/3rdparty/composer.json | 2 +- apps/files_external/3rdparty/composer.lock | 14 +++++++------- .../3rdparty/composer/InstalledVersions.php | 10 +++++----- .../3rdparty/composer/installed.json | 14 +++++++------- .../files_external/3rdparty/composer/installed.php | 10 +++++----- .../3rdparty/icewind/smb/src/AnonymousAuth.php | 6 +++++- .../3rdparty/icewind/smb/src/KerberosAuth.php | 10 ++++++++-- .../icewind/smb/src/Native/NativeState.php | 11 ++++++----- .../icewind/smb/src/Native/NativeStream.php | 8 ++++++-- .../3rdparty/icewind/smb/src/StringBuffer.php | 2 +- .../3rdparty/icewind/smb/src/Wrapped/Server.php | 2 +- 11 files changed, 52 insertions(+), 37 deletions(-) diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json index 3f237c827ee..b70bf2931ca 100644 --- a/apps/files_external/3rdparty/composer.json +++ b/apps/files_external/3rdparty/composer.json @@ -9,6 +9,6 @@ }, "require": { "icewind/streams": "0.7.3", - "icewind/smb": "3.4.0" + "icewind/smb": "3.4.1" } } diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock index 7e180c33662..98afd1332ed 100644 --- a/apps/files_external/3rdparty/composer.lock +++ b/apps/files_external/3rdparty/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9905ed45527f669a4165a8b83b6e4141", + "content-hash": "dacbb67c9e2d1d46204d5b1a7f5cebc2", "packages": [ { "name": "icewind/smb", - "version": "v3.4.0", + "version": "v3.4.1", "source": { "type": "git", "url": "https://github.com/icewind1991/SMB.git", - "reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394" + "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/icewind1991/SMB/zipball/b5c6921f2e91229c9f71556a4713b4fac91fd394", - "reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394", + "url": "https://api.github.com/repos/icewind1991/SMB/zipball/9dba42ab2a3990de29e18cc62b0a8270aceb74e3", + "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3", "shasum": "" }, "require": { @@ -49,9 +49,9 @@ "description": "php wrapper for smbclient and libsmbclient-php", "support": { "issues": "https://github.com/icewind1991/SMB/issues", - "source": "https://github.com/icewind1991/SMB/tree/v3.4.0" + "source": "https://github.com/icewind1991/SMB/tree/v3.4.1" }, - "time": "2021-03-10T14:00:37+00:00" + "time": "2021-04-19T13:53:08+00:00" }, { "name": "icewind/streams", diff --git a/apps/files_external/3rdparty/composer/InstalledVersions.php b/apps/files_external/3rdparty/composer/InstalledVersions.php index 71cd811ef8d..f28623ae66b 100644 --- a/apps/files_external/3rdparty/composer/InstalledVersions.php +++ b/apps/files_external/3rdparty/composer/InstalledVersions.php @@ -30,7 +30,7 @@ private static $installed = array ( 'aliases' => array ( ), - 'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96', + 'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19', 'name' => 'files_external/3rdparty', ), 'versions' => @@ -42,16 +42,16 @@ private static $installed = array ( 'aliases' => array ( ), - 'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96', + 'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19', ), 'icewind/smb' => array ( - 'pretty_version' => 'v3.4.0', - 'version' => '3.4.0.0', + 'pretty_version' => 'v3.4.1', + 'version' => '3.4.1.0', 'aliases' => array ( ), - 'reference' => 'b5c6921f2e91229c9f71556a4713b4fac91fd394', + 'reference' => '9dba42ab2a3990de29e18cc62b0a8270aceb74e3', ), 'icewind/streams' => array ( diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json index e6950959c4f..8f7b949ab05 100644 --- a/apps/files_external/3rdparty/composer/installed.json +++ b/apps/files_external/3rdparty/composer/installed.json @@ -2,17 +2,17 @@ "packages": [ { "name": "icewind/smb", - "version": "v3.4.0", - "version_normalized": "3.4.0.0", + "version": "v3.4.1", + "version_normalized": "3.4.1.0", "source": { "type": "git", "url": "https://github.com/icewind1991/SMB.git", - "reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394" + "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/icewind1991/SMB/zipball/b5c6921f2e91229c9f71556a4713b4fac91fd394", - "reference": "b5c6921f2e91229c9f71556a4713b4fac91fd394", + "url": "https://api.github.com/repos/icewind1991/SMB/zipball/9dba42ab2a3990de29e18cc62b0a8270aceb74e3", + "reference": "9dba42ab2a3990de29e18cc62b0a8270aceb74e3", "shasum": "" }, "require": { @@ -25,7 +25,7 @@ "phpunit/phpunit": "^8.5|^9.3.8", "psalm/phar": "^4.3" }, - "time": "2021-03-10T14:00:37+00:00", + "time": "2021-04-19T13:53:08+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -46,7 +46,7 @@ "description": "php wrapper for smbclient and libsmbclient-php", "support": { "issues": "https://github.com/icewind1991/SMB/issues", - "source": "https://github.com/icewind1991/SMB/tree/v3.4.0" + "source": "https://github.com/icewind1991/SMB/tree/v3.4.1" }, "install-path": "../icewind/smb" }, diff --git a/apps/files_external/3rdparty/composer/installed.php b/apps/files_external/3rdparty/composer/installed.php index 8d83406926d..17718bf45f2 100644 --- a/apps/files_external/3rdparty/composer/installed.php +++ b/apps/files_external/3rdparty/composer/installed.php @@ -6,7 +6,7 @@ 'aliases' => array ( ), - 'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96', + 'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19', 'name' => 'files_external/3rdparty', ), 'versions' => @@ -18,16 +18,16 @@ 'aliases' => array ( ), - 'reference' => '62929cc646134fbd409cfb4eacb7039d15763b96', + 'reference' => '9a69b8839389f133db55a41e1c2ba4435fd50c19', ), 'icewind/smb' => array ( - 'pretty_version' => 'v3.4.0', - 'version' => '3.4.0.0', + 'pretty_version' => 'v3.4.1', + 'version' => '3.4.1.0', 'aliases' => array ( ), - 'reference' => 'b5c6921f2e91229c9f71556a4713b4fac91fd394', + 'reference' => '9dba42ab2a3990de29e18cc62b0a8270aceb74e3', ), 'icewind/streams' => array ( diff --git a/apps/files_external/3rdparty/icewind/smb/src/AnonymousAuth.php b/apps/files_external/3rdparty/icewind/smb/src/AnonymousAuth.php index 0f3524002be..302a249c8fa 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/AnonymousAuth.php +++ b/apps/files_external/3rdparty/icewind/smb/src/AnonymousAuth.php @@ -21,6 +21,8 @@ namespace Icewind\SMB; +use Icewind\SMB\Exception\Exception; + class AnonymousAuth implements IAuth { public function getUsername(): ?string { return null; @@ -39,6 +41,8 @@ class AnonymousAuth implements IAuth { } public function setExtraSmbClientOptions($smbClientState): void { - smbclient_option_set($smbClientState, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, true); + if (smbclient_option_set($smbClientState, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, true) === false) { + throw new Exception("Failed to set smbclient options for anonymous auth"); + } } } diff --git a/apps/files_external/3rdparty/icewind/smb/src/KerberosAuth.php b/apps/files_external/3rdparty/icewind/smb/src/KerberosAuth.php index 7cd9258465a..68fb74ff9ab 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/KerberosAuth.php +++ b/apps/files_external/3rdparty/icewind/smb/src/KerberosAuth.php @@ -21,6 +21,8 @@ namespace Icewind\SMB; +use Icewind\SMB\Exception\Exception; + /** * Use existing kerberos ticket to authenticate */ @@ -42,7 +44,11 @@ class KerberosAuth implements IAuth { } public function setExtraSmbClientOptions($smbClientState): void { - smbclient_option_set($smbClientState, SMBCLIENT_OPT_USE_KERBEROS, true); - smbclient_option_set($smbClientState, SMBCLIENT_OPT_FALLBACK_AFTER_KERBEROS, false); + $success = (bool)smbclient_option_set($smbClientState, SMBCLIENT_OPT_USE_KERBEROS, true); + $success = $success && smbclient_option_set($smbClientState, SMBCLIENT_OPT_FALLBACK_AFTER_KERBEROS, false); + + if (!$success) { + throw new Exception("Failed to set smbclient options for kerberos auth"); + } } } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php index 10ba6ce0458..e1a13ce3e72 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeState.php @@ -97,14 +97,13 @@ class NativeState { /** @var resource $state */ $state = smbclient_state_new(); $this->state = $state; + /** @psalm-suppress UnusedFunctionCall */ smbclient_option_set($this->state, SMBCLIENT_OPT_AUTO_ANONYMOUS_LOGIN, false); + /** @psalm-suppress UnusedFunctionCall */ smbclient_option_set($this->state, SMBCLIENT_OPT_TIMEOUT, $options->getTimeout() * 1000); if (function_exists('smbclient_client_protocols')) { - $maxProtocol = $options->getMaxProtocol(); - $minProtocol = $options->getMinProtocol(); - - smbclient_client_protocols($this->state, $minProtocol, $maxProtocol); + smbclient_client_protocols($this->state, $options->getMinProtocol(), $options->getMaxProtocol()); } $auth->setExtraSmbClientOptions($this->state); @@ -357,7 +356,9 @@ class NativeState { public function __destruct() { if ($this->connected) { - smbclient_state_free($this->state); + if (smbclient_state_free($this->state) === false) { + throw new Exception("Failed to free smb state"); + } } } } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeStream.php b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeStream.php index 216c27f78e3..624ef829d74 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Native/NativeStream.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Native/NativeStream.php @@ -52,7 +52,9 @@ abstract class NativeStream implements File { * @return resource */ protected static function wrapClass(NativeState $state, $smbStream, string $mode, string $url, string $class) { - stream_wrapper_register('nativesmb', $class); + if (stream_wrapper_register('nativesmb', $class) === false) { + throw new Exception("Failed to register stream wrapper"); + } $context = stream_context_create([ 'nativesmb' => [ 'state' => $state, @@ -61,7 +63,9 @@ abstract class NativeStream implements File { ] ]); $fh = fopen('nativesmb://', $mode, false, $context); - stream_wrapper_unregister('nativesmb'); + if (stream_wrapper_unregister('nativesmb') === false) { + throw new Exception("Failed to unregister stream wrapper"); + } return $fh; } diff --git a/apps/files_external/3rdparty/icewind/smb/src/StringBuffer.php b/apps/files_external/3rdparty/icewind/smb/src/StringBuffer.php index 85661218760..c1963df4847 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/StringBuffer.php +++ b/apps/files_external/3rdparty/icewind/smb/src/StringBuffer.php @@ -44,7 +44,7 @@ class StringBuffer { } public function read(int $count): string { - $chunk = substr($this->buffer, $this->pos, $this->pos + $count); + $chunk = substr($this->buffer, $this->pos, $count); $this->pos += strlen($chunk); return $chunk; } diff --git a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Server.php b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Server.php index 60cc9278dd9..dd8513eafd9 100644 --- a/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Server.php +++ b/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Server.php @@ -88,7 +88,7 @@ class Server extends AbstractServer { $shareNames = $parser->parseListShares($output); $shares = []; - foreach ($shareNames as $name => $description) { + foreach ($shareNames as $name => $_description) { $shares[] = $this->getShare($name); } return $shares; -- 2.39.5