diff options
author | Sverker Eriksson <[email protected]> | 2013-11-18 16:56:40 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2013-11-18 17:03:55 +0100 |
commit | ee0ca14382e76d97285e64b3396fbb87f33e23da (patch) | |
tree | e1c8ce7912b0808d5669f69cdb031111e439f14f /erts/emulator/beam/erl_binary.h | |
parent | 20641fe0f2ea745873fc7557448d3a7deb1bd639 (diff) | |
download | otp-ee0ca14382e76d97285e64b3396fbb87f33e23da.tar.gz otp-ee0ca14382e76d97285e64b3396fbb87f33e23da.tar.bz2 otp-ee0ca14382e76d97285e64b3396fbb87f33e23da.zip |
erts: Fix bugs in binary_to_term for invalid bitstrings
<<131, 77, Len:32, Bits:8, Data/binary>>
badarg if Bits > 8
Used to return internally inconsistent bitstring
badarg if Len==0 and Bits > 0
Used to return invalid *huge* binary (size = (Uint)-1)
badarg if Bits==0 and Len > 0
Used to return valid binary as if Bits was 8
Diffstat (limited to 'erts/emulator/beam/erl_binary.h')
-rw-r--r-- | erts/emulator/beam/erl_binary.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_binary.h b/erts/emulator/beam/erl_binary.h index 506c4813fa..24b10cffef 100644 --- a/erts/emulator/beam/erl_binary.h +++ b/erts/emulator/beam/erl_binary.h @@ -225,7 +225,7 @@ erts_free_aligned_binary_bytes(byte* buf) ** These extra bytes where earlier (< R13B04) added by an alignment-bug ** in this code. Do we dare remove this in some major release (R14?) maybe? */ -#ifdef DEBUG +#if defined(DEBUG) || defined(VALGRIND) # define CHICKEN_PAD 0 #else # define CHICKEN_PAD (sizeof(void*) - 1) |