From 7a1510f2e1ae57a142167954670ab5f21597a1c4 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Sun, 20 Jan 2013 21:49:48 -0500 Subject: [PATCH] Remove unsafe uses of reset --- lib/openpgp.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/openpgp.php b/lib/openpgp.php index 6c0686e..d36a5c0 100644 --- a/lib/openpgp.php +++ b/lib/openpgp.php @@ -365,7 +365,8 @@ class OpenPGP_Packet { return array($tag, 3, (($len - 192) << 8) + ord($input[2]) + 192); } if($len == 255) { // Five octet length - return array($tag, 6, reset(unpack('N', substr($input, 2, 4)))); + $unpacked = unpack('N', substr($input, 2, 4)); + return array($tag, 6, reset($unpacked)); } // TODO: Partial body lengths. 1 << ($len & 0x1F) } @@ -445,7 +446,8 @@ class OpenPGP_Packet { * @see http://php.net/manual/en/function.unpack.php */ function read_unpacked($count, $format) { - return reset(unpack($format, $this->read_bytes($count))); + $unpacked = unpack($format, $this->read_bytes($count)); + return reset($unpacked); } function read_byte() { @@ -535,7 +537,8 @@ class OpenPGP_SignaturePacket extends OpenPGP_Packet { $this->trailer = $this->body(true); $signer = $signers[$this->key_algorithm_name()][$this->hash_algorithm_name()]; $this->data = call_user_func($signer, $this->data.$this->trailer); - $this->hash_head = reset(unpack('n', substr($this->data, 0, 2))); + $unpacked = unpack('n', substr($this->data, 0, 2)); + $this->hash_head = reset($unpacked); } function read() { @@ -700,7 +703,8 @@ class OpenPGP_SignaturePacket extends OpenPGP_Packet { } if($len == 255) { // Five octet length $length_of_length = 5; - $len = reset(unpack('N', substr($input, 1, 4))); + $unpacked = unpack('N', substr($input, 1, 4)); + $len = reset($unpacked); } $input = substr($input, $length_of_length); // Chop off length header $tag = ord($input[0]);