diff --git a/phpseclib/Crypt/RSA.php b/phpseclib/Crypt/RSA.php
index 4ef58dad..da9df9f4 100644
--- a/phpseclib/Crypt/RSA.php
+++ b/phpseclib/Crypt/RSA.php
@@ -1333,9 +1333,14 @@ class RSA
xml_set_character_data_handler($xml, '_data_handler');
// add to account for "dangling" tags like ... that are sometimes added
if (!xml_parse($xml, '' . $key . '')) {
+ xml_parser_free($xml);
+ unset($xml);
return false;
}
+ xml_parser_free($xml);
+ unset($xml);
+
return isset($this->components['modulus']) && isset($this->components['publicExponent']) ? $this->components : false;
// from PuTTY's SSHPUBK.C
case self::PRIVATE_FORMAT_PUTTY: