mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-20 22:31:33 +02:00
do not check the string longer than 10.
This commit is contained in:
@@ -131,9 +131,10 @@ static void _msgpack_pack_sv(enc_t *enc, SV* val) {
|
|||||||
if (SvPOKp(val)) {
|
if (SvPOKp(val)) {
|
||||||
STRLEN len;
|
STRLEN len;
|
||||||
char * cval = SvPV(val, len);
|
char * cval = SvPV(val, len);
|
||||||
|
const int U32_STRLEN = 10; /* length(0xFFFFFFFF) */
|
||||||
|
|
||||||
SV* pref_int = get_sv("Data::MessagePack::PreferInteger", 0);
|
SV* pref_int = get_sv("Data::MessagePack::PreferInteger", 0);
|
||||||
if (pref_int && SvTRUE(pref_int) && looks_like_int(cval, len) && SvUV(val) < U32_MAX) {
|
if (pref_int && SvTRUE(pref_int) && len <= U32_STRLEN && looks_like_int(cval, len) && SvUV(val) < U32_MAX) {
|
||||||
PACK_WRAPPER(uint32)(enc, SvUV(val));
|
PACK_WRAPPER(uint32)(enc, SvUV(val));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user