Pt 165173962 fuzz testing aefate #161

Merged
zxq9 merged 36 commits from PT-165173962-fuzz-testing-aefate into master 2019-06-04 01:37:50 +09:00
Showing only changes of commit 5d7bd73bcb - Show all commits

View File

@ -97,7 +97,7 @@ serialize(#fcode{} = F) ->
serialize(F, []). serialize(F, []).
serialize(#fcode{} = F, Options) -> serialize(#fcode{} = F, Options) ->
serialize(F, iolist_to_binary(serialize_functions(F)), Options). serialize(F, serialize_functions(F), Options).
serialize(#fcode{} = F, Functions, Options) -> serialize(#fcode{} = F, Functions, Options) ->
SymbolTable = serialize_symbol_table(F), SymbolTable = serialize_symbol_table(F),
@ -123,9 +123,12 @@ to_hexstring(ByteList) ->
serialize_functions(#fcode{ functions = Functions }) -> serialize_functions(#fcode{ functions = Functions }) ->
%% Sort the functions on name to get a canonical serialisation. %% Sort the functions on name to get a canonical serialisation.
Code = [[?FUNCTION, Name, serialize_signature(Sig), serialize_bbs(C)] || iolist_to_binary(
{Name, {Sig, C}} <- lists:sort(maps:to_list(Functions))], lists:foldr(fun({Id, {Sig, C}}, Acc) when byte_size(Id) == 4 ->
lists:flatten(Code). [[?FUNCTION, Id, serialize_signature(Sig), serialize_bbs(C)] | Acc];
({Id, _}, _) ->
error({illegal_function_id, Id})
end, [], lists:sort(maps:to_list(Functions)))).
serialize_signature({Args, RetType}) -> serialize_signature({Args, RetType}) ->
[aeb_fate_encoding:serialize_type({tuple, Args}) | [aeb_fate_encoding:serialize_type({tuple, Args}) |