Skip to content

Commit e536ec5

Browse files
author
Yuki Ito
committed
Validate array size
1 parent d27e775 commit e536ec5

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

src/msgpack_packer.erl

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,10 +273,12 @@ pack_array([A, B, C, D, E, F, G, H, I, J, K, L, M, N, O], Opt) ->
273273

274274
pack_array(L, Opt) ->
275275
case length(L) of
276-
Len when Len < 16#10000 -> % 65536
276+
Len when Len < 16#10000 ->
277277
<<16#DC:8, Len:16/big-unsigned-integer-unit:1, (<< <<(pack(E, Opt))/binary>> || E <- L >>)/binary>>;
278-
Len ->
279-
<<16#DD:8, Len:32/big-unsigned-integer-unit:1, (<< <<(pack(E, Opt))/binary>> || E <- L >>)/binary>>
278+
Len when Len < 16#100000000 ->
279+
<<16#DD:8, Len:32/big-unsigned-integer-unit:1, (<< <<(pack(E, Opt))/binary>> || E <- L >>)/binary>>;
280+
_ ->
281+
{error, {badarg, L}}
280282
end.
281283

282284
-spec pack_map(msgpack:msgpack_map(), msgpack_option()) -> binary() | no_return().

0 commit comments

Comments
 (0)