diff options
| author | tokuhirom <tokuhirom@gmail.com> | 2010-08-31 23:42:32 +0900 |
|---|---|---|
| committer | tokuhirom <tokuhirom@gmail.com> | 2010-08-31 23:42:32 +0900 |
| commit | 23a7137e6a6d7f2910fef2dde305f45f83416194 (patch) | |
| tree | ac5f11480b8977bf7f0829f16d65949b36e839cf | |
| parent | 71a1cb01842787e2fa897f023addd88337542915 (diff) | |
| download | msgpack-python-23a7137e6a6d7f2910fef2dde305f45f83416194.tar.gz | |
Perl: better argument validation(patch from dankogai)
| -rw-r--r-- | perl/pack.c | 4 | ||||
| -rw-r--r-- | perl/t/08_cycle.t | 5 |
2 files changed, 6 insertions, 3 deletions
diff --git a/perl/pack.c b/perl/pack.c index af6669c..93b2e2f 100644 --- a/perl/pack.c +++ b/perl/pack.c @@ -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_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); 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) { svtype svt; - if (!depth) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED); + if (depth <= 0) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED); SvGETMAGIC(sv); svt = SvTYPE(sv); diff --git a/perl/t/08_cycle.t b/perl/t/08_cycle.t index 55d8427..2bd66c1 100644 --- a/perl/t/08_cycle.t +++ b/perl/t/08_cycle.t @@ -2,7 +2,7 @@ use t::Util; use Test::More; use Data::MessagePack; -plan tests => 5; +plan tests => 6; my $aref = [0]; $aref->[1] = $aref; @@ -23,3 +23,6 @@ ok !$@; eval { Data::MessagePack->pack($aref, 2) }; ok $@, $@; + +eval { Data::MessagePack->pack($aref, -1) }; +ok $@, $@; |
