From 66c62f432b07326598ce172cf9d4b292412c0e48 Mon Sep 17 00:00:00 2001 From: EMQ-YangM Date: Wed, 18 May 2022 14:49:51 +0800 Subject: [PATCH] fix: zero padding should be to the MSB side --- apps/emqx/src/emqx_misc.erl | 3 +-- apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl | 8 ++++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/emqx/src/emqx_misc.erl b/apps/emqx/src/emqx_misc.erl index 9a16f7107..4849fe38b 100644 --- a/apps/emqx/src/emqx_misc.erl +++ b/apps/emqx/src/emqx_misc.erl @@ -333,8 +333,7 @@ hexstr_to_bin(B, Size) when is_binary(B) -> 0 -> make_binary(B); 8 -> - <> = B, - <<(make_binary(BH))/binary, <<(hexchar2int(BL) * 16)>>/binary>>; + make_binary(<<"0", B/binary>>); _ -> throw({unsupport_hex_string, B, Size}) end. diff --git a/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl index 0514fc0e9..69da7e4de 100644 --- a/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl +++ b/apps/emqx_rule_engine/test/emqx_rule_funcs_SUITE.erl @@ -171,10 +171,10 @@ t_term_encode(_) -> ). t_hexstr2bin(_) -> - ?assertEqual(<<99, 100, 240>>, emqx_rule_funcs:hexstr2bin(<<"6364f">>)), - ?assertEqual(<<160>>, emqx_rule_funcs:hexstr2bin(<<"a">>)), - ?assertEqual(<<240>>, emqx_rule_funcs:hexstr2bin(<<"f">>)), - ?assertEqual(<<80>>, emqx_rule_funcs:hexstr2bin(<<"5">>)), + ?assertEqual(<<6, 54, 79>>, emqx_rule_funcs:hexstr2bin(<<"6364f">>)), + ?assertEqual(<<10>>, emqx_rule_funcs:hexstr2bin(<<"a">>)), + ?assertEqual(<<15>>, emqx_rule_funcs:hexstr2bin(<<"f">>)), + ?assertEqual(<<5>>, emqx_rule_funcs:hexstr2bin(<<"5">>)), ?assertEqual(<<1, 2>>, emqx_rule_funcs:hexstr2bin(<<"0102">>)), ?assertEqual(<<17, 33>>, emqx_rule_funcs:hexstr2bin(<<"1121">>)).