From 1a966741f4e0d481f6ef125fbd5932cb5d6167da Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Wed, 11 Feb 2026 18:01:18 +0530 Subject: [PATCH] (fix): Fix TypeError in Origin validator when array is passed Move type check before assignment to prevent TypeError when non-string value (like array) is passed to Origin::isValid(). The property \$this->origin is typed as string, so assigning an array before the is_string() check caused the error. --- src/Appwrite/Network/Validator/Origin.php | 8 ++++---- tests/unit/Network/Validators/OriginTest.php | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Appwrite/Network/Validator/Origin.php b/src/Appwrite/Network/Validator/Origin.php index 2f76aa2f86..8b9974e990 100644 --- a/src/Appwrite/Network/Validator/Origin.php +++ b/src/Appwrite/Network/Validator/Origin.php @@ -51,14 +51,14 @@ class Origin extends Validator */ public function isValid($origin): bool { - $this->origin = $origin; - $this->scheme = null; - $this->host = null; - if (!is_string($origin) || empty($origin)) { return false; } + $this->origin = $origin; + $this->scheme = null; + $this->host = null; + $this->scheme = $this->parseScheme($origin); $this->host = strtolower(parse_url($origin, PHP_URL_HOST) ?? ''); diff --git a/tests/unit/Network/Validators/OriginTest.php b/tests/unit/Network/Validators/OriginTest.php index aa3ab65e5a..7a19daecbf 100644 --- a/tests/unit/Network/Validators/OriginTest.php +++ b/tests/unit/Network/Validators/OriginTest.php @@ -16,6 +16,8 @@ class OriginTest extends TestCase $this->assertEquals(false, $validator->isValid('')); $this->assertEquals(false, $validator->isValid('/')); + $this->assertEquals(false, $validator->isValid([])); + $this->assertEquals(false, $validator->isValid(['http://localhost'])); $this->assertEquals(true, $validator->isValid('https://localhost')); $this->assertEquals(true, $validator->isValid('http://localhost'));