From d5f17448895b720443ea3b9504ffd9486af06165 Mon Sep 17 00:00:00 2001 From: Michal Stefanak Date: Sun, 25 Oct 2020 12:13:24 +0100 Subject: [PATCH] fixed Unpacker -TINY_INT in proper way --- .gitignore | 1 + src/PackStream/v1/Unpacker.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9edc5cb..e4b4547 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .idea/ .vscode/ phpunit*.phar +/index.php diff --git a/src/PackStream/v1/Unpacker.php b/src/PackStream/v1/Unpacker.php index 8d08d6e..368edf6 100644 --- a/src/PackStream/v1/Unpacker.php +++ b/src/PackStream/v1/Unpacker.php @@ -268,7 +268,7 @@ private function unpackInteger(int $marker, bool &$result = false): int if ($marker >> 7 == 0b0) { //+TINY_INT $output = $marker; } elseif ($marker >> 4 == 0b1111) { //-TINY_INT - $output = -16 + (0b11110000 ^ $marker); + $output = unpack('c', strrev(chr($marker)))[1] ?? 0; } elseif ($marker == 0xC8) { //INT_8 $output = unpack('c', $this->next(1))[1] ?? 0; } elseif ($marker == 0xC9) { //INT_16