summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlad Ionescu <vlad@lshift.net>2010-05-14 18:07:39 +0100
committerVlad Ionescu <vlad@lshift.net>2010-05-14 18:07:39 +0100
commitcd0006e46569fc2fbd0395bb23fff02434ecea32 (patch)
tree1a32de83213b0016fa2508198cedda5fbcc04a53
parentc05ae22f463ce280bde92ab89c2d911c0e96730f (diff)
downloadrabbitmq-server-bug22761.tar.gz
handling the case of empty payload in rabbit_binary_generator:build_content_frames/7bug22761
-rw-r--r--src/rabbit_binary_generator.erl9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rabbit_binary_generator.erl b/src/rabbit_binary_generator.erl
index ed843735..27a1275a 100644
--- a/src/rabbit_binary_generator.erl
+++ b/src/rabbit_binary_generator.erl
@@ -118,10 +118,11 @@ build_content_frames(SizeAcc, FramesAcc, FragSizeRem, FragAcc,
[Frag | Frags], BodyPayloadMax, ChannelInt) ->
Size = size(Frag),
{NewFragSizeRem, NewFragAcc, NewFrags} =
- case Size =< FragSizeRem of
- true -> {FragSizeRem - Size, [Frag | FragAcc], Frags};
- false -> <<Head:FragSizeRem/binary, Tail/binary>> = Frag,
- {0, [Head | FragAcc], [Tail | Frags]}
+ if Size == 0 -> {FragSizeRem, FragAcc, Frags};
+ Size =< FragSizeRem -> {FragSizeRem - Size, [Frag | FragAcc], Frags};
+ true -> <<Head:FragSizeRem/binary, Tail/binary>> =
+ Frag,
+ {0, [Head | FragAcc], [Tail | Frags]}
end,
build_content_frames(SizeAcc, FramesAcc, NewFragSizeRem, NewFragAcc,
NewFrags, BodyPayloadMax, ChannelInt).