| Index: third_party/libxslt/libexslt/crypto.c | 
| diff --git a/third_party/libxslt/libexslt/crypto.c b/third_party/libxslt/libexslt/crypto.c | 
| index d142bb65fef7273305a8673d95e9a70d9488498e..6aa9dd2540fa1aec58c3cc8b746bb0f07275df37 100644 | 
| --- a/third_party/libxslt/libexslt/crypto.c | 
| +++ b/third_party/libxslt/libexslt/crypto.c | 
| @@ -457,7 +457,8 @@ exsltCryptoGcryptRc4Decrypt (xmlXPathParserContextPtr ctxt, | 
| * @ctxt: an XPath parser context | 
| * @nargs: the number of arguments | 
| * | 
| - * Helper function which checks for and returns first string argument and its length | 
| + * Helper function which checks for and returns first string argument and its | 
| + * length in bytes. | 
| */ | 
| static int | 
| exsltCryptoPopString (xmlXPathParserContextPtr ctxt, int nargs, | 
| @@ -471,7 +472,7 @@ exsltCryptoPopString (xmlXPathParserContextPtr ctxt, int nargs, | 
| } | 
|  | 
| *str = xmlXPathPopString (ctxt); | 
| -    str_len = xmlUTF8Strlen (*str); | 
| +    str_len = xmlStrlen (*str); | 
|  | 
| if (str_len == 0) { | 
| xmlXPathReturnEmptyString (ctxt); | 
| @@ -591,7 +592,7 @@ exsltCryptoSha1Function (xmlXPathParserContextPtr ctxt, int nargs) { | 
| static void | 
| exsltCryptoRc4EncryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
|  | 
| -    int key_len = 0, key_size = 0; | 
| +    int key_len = 0; | 
| int str_len = 0, bin_len = 0, hex_len = 0; | 
| xmlChar *key = NULL, *str = NULL, *padkey = NULL; | 
| xmlChar *bin = NULL, *hex = NULL; | 
| @@ -604,7 +605,7 @@ exsltCryptoRc4EncryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
| tctxt = xsltXPathGetTransformContext(ctxt); | 
|  | 
| str = xmlXPathPopString (ctxt); | 
| -    str_len = xmlUTF8Strlen (str); | 
| +    str_len = xmlStrlen (str); | 
|  | 
| if (str_len == 0) { | 
| xmlXPathReturnEmptyString (ctxt); | 
| @@ -613,7 +614,7 @@ exsltCryptoRc4EncryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
| } | 
|  | 
| key = xmlXPathPopString (ctxt); | 
| -    key_len = xmlUTF8Strlen (key); | 
| +    key_len = xmlStrlen (key); | 
|  | 
| if (key_len == 0) { | 
| xmlXPathReturnEmptyString (ctxt); | 
| @@ -632,15 +633,14 @@ exsltCryptoRc4EncryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
| } | 
| memset(padkey, 0, RC4_KEY_LENGTH + 1); | 
|  | 
| -    key_size = xmlUTF8Strsize (key, key_len); | 
| -    if ((key_size > RC4_KEY_LENGTH) || (key_size < 0)) { | 
| +    if ((key_len > RC4_KEY_LENGTH) || (key_len < 0)) { | 
| xsltTransformError(tctxt, NULL, tctxt->inst, | 
| "exsltCryptoRc4EncryptFunction: key size too long or key broken\n"); | 
| tctxt->state = XSLT_STATE_STOPPED; | 
| xmlXPathReturnEmptyString (ctxt); | 
| goto done; | 
| } | 
| -    memcpy (padkey, key, key_size); | 
| +    memcpy (padkey, key, key_len); | 
|  | 
| /* encrypt it */ | 
| bin_len = str_len; | 
| @@ -689,7 +689,7 @@ done: | 
| static void | 
| exsltCryptoRc4DecryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
|  | 
| -    int key_len = 0, key_size = 0; | 
| +    int key_len = 0; | 
| int str_len = 0, bin_len = 0, ret_len = 0; | 
| xmlChar *key = NULL, *str = NULL, *padkey = NULL, *bin = | 
| NULL, *ret = NULL; | 
| @@ -702,7 +702,7 @@ exsltCryptoRc4DecryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
| tctxt = xsltXPathGetTransformContext(ctxt); | 
|  | 
| str = xmlXPathPopString (ctxt); | 
| -    str_len = xmlUTF8Strlen (str); | 
| +    str_len = xmlStrlen (str); | 
|  | 
| if (str_len == 0) { | 
| xmlXPathReturnEmptyString (ctxt); | 
| @@ -711,7 +711,7 @@ exsltCryptoRc4DecryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
| } | 
|  | 
| key = xmlXPathPopString (ctxt); | 
| -    key_len = xmlUTF8Strlen (key); | 
| +    key_len = xmlStrlen (key); | 
|  | 
| if (key_len == 0) { | 
| xmlXPathReturnEmptyString (ctxt); | 
| @@ -729,15 +729,14 @@ exsltCryptoRc4DecryptFunction (xmlXPathParserContextPtr ctxt, int nargs) { | 
| goto done; | 
| } | 
| memset(padkey, 0, RC4_KEY_LENGTH + 1); | 
| -    key_size = xmlUTF8Strsize (key, key_len); | 
| -    if ((key_size > RC4_KEY_LENGTH) || (key_size < 0)) { | 
| +    if ((key_len > RC4_KEY_LENGTH) || (key_len < 0)) { | 
| xsltTransformError(tctxt, NULL, tctxt->inst, | 
| "exsltCryptoRc4EncryptFunction: key size too long or key broken\n"); | 
| tctxt->state = XSLT_STATE_STOPPED; | 
| xmlXPathReturnEmptyString (ctxt); | 
| goto done; | 
| } | 
| -    memcpy (padkey, key, key_size); | 
| +    memcpy (padkey, key, key_len); | 
|  | 
| /* decode hex to binary */ | 
| bin_len = str_len; | 
|  |