mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-03-30 07:26:29 +02:00
Perl: better argument validation(patch from dankogai)
This commit is contained in:
parent
71a1cb0184
commit
23a7137e6a
@ -151,7 +151,7 @@ static int try_int(enc_t* enc, const char *p, size_t len) {
|
|||||||
static void _msgpack_pack_rv(enc_t *enc, SV* sv, int depth);
|
static void _msgpack_pack_rv(enc_t *enc, SV* sv, int depth);
|
||||||
|
|
||||||
static void _msgpack_pack_sv(enc_t *enc, SV* sv, int depth) {
|
static void _msgpack_pack_sv(enc_t *enc, SV* sv, int depth) {
|
||||||
if (!depth) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED);
|
if (depth <= 0) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED);
|
||||||
SvGETMAGIC(sv);
|
SvGETMAGIC(sv);
|
||||||
|
|
||||||
if (sv==NULL) {
|
if (sv==NULL) {
|
||||||
@ -187,7 +187,7 @@ static void _msgpack_pack_sv(enc_t *enc, SV* sv, int depth) {
|
|||||||
|
|
||||||
static void _msgpack_pack_rv(enc_t *enc, SV* sv, int depth) {
|
static void _msgpack_pack_rv(enc_t *enc, SV* sv, int depth) {
|
||||||
svtype svt;
|
svtype svt;
|
||||||
if (!depth) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED);
|
if (depth <= 0) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED);
|
||||||
SvGETMAGIC(sv);
|
SvGETMAGIC(sv);
|
||||||
svt = SvTYPE(sv);
|
svt = SvTYPE(sv);
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ use t::Util;
|
|||||||
use Test::More;
|
use Test::More;
|
||||||
use Data::MessagePack;
|
use Data::MessagePack;
|
||||||
|
|
||||||
plan tests => 5;
|
plan tests => 6;
|
||||||
|
|
||||||
my $aref = [0];
|
my $aref = [0];
|
||||||
$aref->[1] = $aref;
|
$aref->[1] = $aref;
|
||||||
@ -23,3 +23,6 @@ ok !$@;
|
|||||||
|
|
||||||
eval { Data::MessagePack->pack($aref, 2) };
|
eval { Data::MessagePack->pack($aref, 2) };
|
||||||
ok $@, $@;
|
ok $@, $@;
|
||||||
|
|
||||||
|
eval { Data::MessagePack->pack($aref, -1) };
|
||||||
|
ok $@, $@;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user