@@ -152,8 +152,10 @@ pack_raw(Bin) ->
152152 << 2#101 :3 , Len :5 , Bin /binary >>;
153153 Len when Len < 16#10000 -> % 65536
154154 << 16#DA :8 , Len :16 /big -unsigned -integer -unit :1 , Bin /binary >>;
155- Len ->
156- << 16#DB :8 , Len :32 /big -unsigned -integer -unit :1 , Bin /binary >>
155+ Len when Len < 16#100000000 ->
156+ << 16#DB :8 , Len :32 /big -unsigned -integer -unit :1 , Bin /binary >>;
157+ _ ->
158+ {error , {badarg , Bin }}
157159 end .
158160
159161-spec pack_raw2 (binary ()) -> binary ().
@@ -164,8 +166,10 @@ pack_raw2(Bin) ->
164166 << 16#C4 :8 , Len :8 /big -unsigned -integer -unit :1 , Bin /binary >>;
165167 Len when Len < 16#10000 -> % 65536
166168 << 16#C5 :8 , Len :16 /big -unsigned -integer -unit :1 , Bin /binary >>;
167- Len ->
168- << 16#C6 :8 , Len :32 /big -unsigned -integer -unit :1 , Bin /binary >>
169+ Len when Len < 16#100000000 ->
170+ << 16#C6 :8 , Len :32 /big -unsigned -integer -unit :1 , Bin /binary >>;
171+ _ ->
172+ {error , {badarg , Bin }}
169173 end .
170174
171175% % @doc String MAY be unicode. Or may be EUC-JP, SJIS, UTF-1024 or anything.
@@ -184,8 +188,10 @@ pack_string(String, _Opt) ->
184188 << 16#D9 :8 , Len :8 /big -unsigned -integer -unit :1 , Bin /binary >>;
185189 Len when Len < 16#10000 -> % 65536
186190 << 16#DA :8 , Len :16 /big -unsigned -integer -unit :1 , Bin /binary >>;
187- Len ->
188- << 16#DB :8 , Len :32 /big -unsigned -integer -unit :1 , Bin /binary >>
191+ Len when Len < 16#100000000 ->
192+ << 16#DB :8 , Len :32 /big -unsigned -integer -unit :1 , Bin /binary >>;
193+ _ ->
194+ {error , {badarg , String }}
189195 end
190196 end .
191197
0 commit comments