summaryrefslogtreecommitdiff
path: root/utf8.c
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-12-14 04:07:08 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-12-14 04:07:08 +0000
commitd90824e8c60f2fd870fd888b4d870ebe54c3eeb1 (patch)
tree9da7c224ed147b1476b2caa533f2c460ac064805 /utf8.c
parent88eeb692732a0bedeb3c070280522395f40efbd7 (diff)
downloadperl-d90824e8c60f2fd870fd888b4d870ebe54c3eeb1.tar.gz
Buffer overflow checks.
p4raw-id: //depot/perl@13681
Diffstat (limited to 'utf8.c')
-rw-r--r--utf8.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/utf8.c b/utf8.c
index 3a8c13a193..f11bc3a742 100644
--- a/utf8.c
+++ b/utf8.c
@@ -927,7 +927,7 @@ Perl_to_uni_title(pTHX_ UV c, U8* p, STRLEN *lenp)
UV
Perl_to_uni_lower(pTHX_ UV c, U8* p, STRLEN *lenp)
{
- U8 tmpbuf[UTF8_MAXLEN+1];
+ U8 tmpbuf[UTF8_MAXLEN_UCLC+1];
uvchr_to_utf8(tmpbuf, (UV)c);
return to_utf8_lower(tmpbuf, p, lenp);
}
@@ -935,7 +935,7 @@ Perl_to_uni_lower(pTHX_ UV c, U8* p, STRLEN *lenp)
UV
Perl_to_uni_fold(pTHX_ UV c, U8* p, STRLEN *lenp)
{
- U8 tmpbuf[UTF8_MAXLEN+1];
+ U8 tmpbuf[UTF8_MAXLEN_FOLD+1];
uvchr_to_utf8(tmpbuf, (UV)c);
return to_utf8_fold(tmpbuf, p, lenp);
}
@@ -1247,7 +1247,8 @@ Perl_to_utf8_case(pTHX_ U8 *p, U8* ustrp, STRLEN *lenp, SV **swashp,char *normal
return 0;
}
}
- *lenp = UNISKIP(uv);
+ if *lenp)
+ *lenp = UNISKIP(uv);
uvuni_to_utf8(ustrp, uv);
return uv;
}