diff options
author | Nicholas Clark <nick@ccl4.org> | 2011-09-09 18:15:00 +0200 |
---|---|---|
committer | Florian Ragwitz <rafl@debian.org> | 2011-09-09 18:15:00 +0200 |
commit | e0601d3cce2506893b3816f3ef18eaeff16f5062 (patch) | |
tree | 54c0e222e087c1f779246a238f24a1a0b9de89f9 /locale.c | |
parent | ad49ad39a1ce6ed6cd206df58acc6d2d81910459 (diff) | |
download | perl-e0601d3cce2506893b3816f3ef18eaeff16f5062.tar.gz |
When probing strxfrm, consider a consistent return value of 0 as sane
Diffstat (limited to 'locale.c')
-rw-r--r-- | locale.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -231,7 +231,7 @@ Perl_new_collate(pTHX_ const char *newcoll) const Size_t fa = strxfrm(xbuf, "a", XFRMBUFSIZE); const Size_t fb = strxfrm(xbuf, "ab", XFRMBUFSIZE); const SSize_t mult = fb - fa; - if (mult < 1) + if (mult < 1 && !(fa == 0 && fb == 0)) Perl_croak(aTHX_ "panic: strxfrm() gets absurd - a => %"UVuf", ab => %"UVuf, (UV) fa, (UV) fb); PL_collxfrm_base = (fa > (Size_t)mult) ? (fa - mult) : 0; |