ruby-changes:12793
From: nobu <ko1@a...>
Date: Thu, 13 Aug 2009 15:37:58 +0900 (JST)
Subject: [ruby-changes:12793] Ruby:r24521 (trunk): * regenc.c (onigenc_strlen_null, onigenc_str_bytelen_null): fixed
nobu 2009-08-13 15:37:39 +0900 (Thu, 13 Aug 2009) New Revision: 24521 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24521 Log: * regenc.c (onigenc_strlen_null, onigenc_str_bytelen_null): fixed infinite loop for wide encodings. reported by Ralf Junker at [ruby-core:24892]. [ruby-core:24904] Modified files: trunk/ChangeLog trunk/regenc.c Index: regenc.c =================================================================== --- regenc.c (revision 24520) +++ regenc.c (revision 24521) @@ -136,7 +136,7 @@ { int n = 0; UChar* p = (UChar* )s; - UChar* e = p + strlen((const char *)s); + UChar* e; while (1) { if (*p == '\0') { @@ -152,6 +152,7 @@ } if (len == 1) return n; } + e = p + ONIGENC_MBC_MAXLEN(enc); p += ONIGENC_MBC_ENC_LEN(enc, p, e); n++; } @@ -162,7 +163,7 @@ { UChar* start = (UChar* )s; UChar* p = (UChar* )s; - UChar* e = p + strlen((const char *)s); + UChar* e; while (1) { if (*p == '\0') { @@ -178,6 +179,7 @@ } if (len == 1) return (int )(p - start); } + e = p + ONIGENC_MBC_MAXLEN(enc); p += ONIGENC_MBC_ENC_LEN(enc, p, e); } } Index: ChangeLog =================================================================== --- ChangeLog (revision 24520) +++ ChangeLog (revision 24521) @@ -1,3 +1,9 @@ +Thu Aug 13 15:37:33 2009 Nobuyoshi Nakada <nobu@r...> + + * regenc.c (onigenc_strlen_null, onigenc_str_bytelen_null): fixed + infinite loop for wide encodings. reported by Ralf Junker a + [ruby-core:24892]. [ruby-core:24904] + Wed Aug 12 21:07:46 2009 NAKAMURA Usaku <usa@r...> * ext/socket/extconf.rb: if ipv6 is enabled, the version of Windows -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/