[erlang-bugs] erl crash on call to http_base_64

Dmitriy Kargapolov <>
Thu Oct 12 17:41:02 CEST 2006


Small example of segmentation-failing code:

test() ->
    [A,B,C] = [1,a,b],
    (A bsl 2) bor (B bsl 3) bor C.


datacompboy wrote:
> 
> datacompboy wrote:
> http_base_64:decode("dGVzda==a").
> (end of quote)
> 
> 
> Intresting info: if start debugger and parse module http_base_64 from inets, we got 
> =ERROR REPORT==== 8-Oct-2006::14:15:27 ===
> Error in process <0.129.0> with exit value: {badarith,[{http_base_64,decode_base64_list,[{[29,26,pad,pad],"n"},"set"]}]}
> 
> ** exited: {badarith,[{http_base_64,decode_base64_list,[{[29,26,pad,pad],"n"},"set"]}]} **
> 
> so, looks like that are core bug in runtime system!
> 
> ... but for http_base_64 fix are simple:
> change
> decode_base64_list({[Sixtet1,Sixtet2,pad,pad], []}, Acc) ->
> to
> decode_base64_list({[Sixtet1,Sixtet2,pad,pad], _}, Acc) ->
> 
> and 
> decode_base64_list({[Sixtet1,Sixtet2,Sixtet3,pad], []}, Acc) ->
> to
> decode_base64_list({[Sixtet1,Sixtet2,Sixtet3,pad], _}, Acc) ->
> --
> --- suicide proc near\n call death\n suicide endp
> _________________________________________________________
> Post sent from http://www.trapexit.org
> _______________________________________________
> erlang-bugs mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-bugs
> 



More information about the erlang-bugs mailing list