diff options
| author | Matthias Radestock <matthias@rabbitmq.com> | 2012-06-12 18:34:48 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@rabbitmq.com> | 2012-06-12 18:34:48 +0100 |
| commit | 1bfe0d7539d8eacd99be19de545b00af6549272d (patch) | |
| tree | 05534ea79e4ed0b23f3a7f854a2faa68321c976a | |
| parent | f832f262672e09b600c60aa04b1cd6df31fb8c11 (diff) | |
| download | rabbitmq-server-git-1bfe0d7539d8eacd99be19de545b00af6549272d.tar.gz | |
enforce frame_max
| -rw-r--r-- | src/rabbit_reader.erl | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 07b39d8cc9..735e7b670b 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -536,6 +536,11 @@ post_process_frame({method, MethodName, _}, _ChPid, post_process_frame(_Frame, _ChPid, State) -> control_throttle(State). +handle_input(frame_header, <<Type:8,Channel:16,PayloadSize:32>>, + #v1{connection = #connection{frame_max = FrameMax}}) + when FrameMax /= 0 andalso PayloadSize > FrameMax - ?EMPTY_FRAME_SIZE -> + throw({frame_too_large, Type, Channel, PayloadSize, + FrameMax - ?EMPTY_FRAME_SIZE}); handle_input(frame_header, <<Type:8,Channel:16,PayloadSize:32>>, State) -> ensure_stats_timer( switch_callback(State, {frame_payload, Type, Channel, PayloadSize}, |
