[erlang-patches] integer_to_binary/2 returns incorrect values or crashes with bases other than 10

Juan Jose Comellas <>
Mon Sep 9 19:23:05 CEST 2013


The integer_to_binary/2 function works perfectly with base 10 (because it
just calls integer_to_binary/1), but when used with other bases it fails
when 0 or a negative number are passed as the number to convert. e.g.:

1> integer_to_binary(0, 16).
<<>>

2> integer_to_binary(-1, 16).
** exception error: bad argument
     in function  byte_size/1
        called as byte_size([])
     in call from erlang:integer_to_binary/3
     in call from integer_to_binary/2

The expected results are:

1> integer_to_binary(0, 16).
<<"0">>

2> integer_to_binary(-1, 16).
<<"-1">>

I've sent this change as a pull request, but on this branch there's the
patch to fix this problem and some tests to cover these cases.

git fetch git://github.com/jcomellas/otp.git jc-integer_to_binary2

https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2
https://github.com/jcomellas/otp/compare/erlang:maint...jc-integer_to_binary2.patch
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20130909/4aab25a3/attachment.html>


More information about the erlang-patches mailing list