Commit:    30bf2fbb9d92b66b2f40cb3383bbb00d5921269c
Author:    Gustavo André dos Santos Lopes <cataphr...@php.net>         Mon, 30 
Apr 2012 15:29:36 +0200
Parents:   81d8f4079cac4e215e5ed98b5a6fd1f3a89e375f
Branches:  master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=30bf2fbb9d92b66b2f40cb3383bbb00d5921269c

Log:
Handle bogus string in intl_charFromString().

Changed paths:
  M  ext/intl/intl_convertcpp.cpp


Diff:
diff --git a/ext/intl/intl_convertcpp.cpp b/ext/intl/intl_convertcpp.cpp
index 8dddc702..5034028 100644
--- a/ext/intl/intl_convertcpp.cpp
+++ b/ext/intl/intl_convertcpp.cpp
@@ -48,9 +48,16 @@ int intl_stringFromChar(UnicodeString &ret, char *str, 
int32_t str_len, UErrorCo
 }
 /* }}} */
 
-/* {{{ intl_charFromString */
+/* {{{ intl_charFromString
+ * faster than doing intl_convert_utf16_to_utf8(&res, &res_len,
+ *             from.getBuffer(), from.length(), &status),
+ * but consumes more memory */
 int intl_charFromString(const UnicodeString &from, char **res, int *res_len, 
UErrorCode *status)
 {
+       if (from.isBogus()) {
+               return FAILURE;
+       }
+
        //the number of UTF-8 code units is not larger than that of UTF-16 code
        //units * 3 + 1 for the terminator
        int32_t capacity = from.length() * 3 + 1;


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to