Merge pull request #7980 from EMQ-YangM/fix_zero_padding

fix: zero padding should be to the MSB side
This commit is contained in:
Yang Miao 2022-05-18 17:22:23 +08:00 committed by GitHub
commit bf552f2c4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 6 deletions

View File

@ -333,8 +333,7 @@ hexstr_to_bin(B, Size) when is_binary(B) ->
0 -> 0 ->
make_binary(B); make_binary(B);
8 -> 8 ->
<<BH:((Size - 8) div 8)/binary, BL:8>> = B, make_binary(<<"0", B/binary>>);
<<(make_binary(BH))/binary, <<(hexchar2int(BL) * 16)>>/binary>>;
_ -> _ ->
throw({unsupport_hex_string, B, Size}) throw({unsupport_hex_string, B, Size})
end. end.

View File

@ -171,10 +171,10 @@ t_term_encode(_) ->
). ).
t_hexstr2bin(_) -> t_hexstr2bin(_) ->
?assertEqual(<<99, 100, 240>>, emqx_rule_funcs:hexstr2bin(<<"6364f">>)), ?assertEqual(<<6, 54, 79>>, emqx_rule_funcs:hexstr2bin(<<"6364f">>)),
?assertEqual(<<160>>, emqx_rule_funcs:hexstr2bin(<<"a">>)), ?assertEqual(<<10>>, emqx_rule_funcs:hexstr2bin(<<"a">>)),
?assertEqual(<<240>>, emqx_rule_funcs:hexstr2bin(<<"f">>)), ?assertEqual(<<15>>, emqx_rule_funcs:hexstr2bin(<<"f">>)),
?assertEqual(<<80>>, emqx_rule_funcs:hexstr2bin(<<"5">>)), ?assertEqual(<<5>>, emqx_rule_funcs:hexstr2bin(<<"5">>)),
?assertEqual(<<1, 2>>, emqx_rule_funcs:hexstr2bin(<<"0102">>)), ?assertEqual(<<1, 2>>, emqx_rule_funcs:hexstr2bin(<<"0102">>)),
?assertEqual(<<17, 33>>, emqx_rule_funcs:hexstr2bin(<<"1121">>)). ?assertEqual(<<17, 33>>, emqx_rule_funcs:hexstr2bin(<<"1121">>)).