aws-eventstream 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef443ef59b253d6741f2e0d35bb951b3fc2f80c084f201f9a45e9118b3d1b069
4
- data.tar.gz: a54566e91fbb832d70184a303103fbd0cd843943fedf24d628dfc6a89e2d4f7e
3
+ metadata.gz: 9f7607916d853599e76825eca92307793809152833c3e03d46668641662ed989
4
+ data.tar.gz: 7af13e44c46b8428daf19e6ecb42af386ec1b99ec49dbd692969d3a4ef161469
5
5
  SHA512:
6
- metadata.gz: dc6a492046140306a505dbdde53d4fc4dfb73fe7d495cc4d5a3634090ea249ede261a4e83a4432f4fddff2f9729c7aab7563a84c8de5e49e8e9046c4b5177da6
7
- data.tar.gz: 7c4b687c08fada2bb58db7aec6694ac830791b3d17fcff143541ad6ee8f2d9072a8dfe279572298daeedd7e89c90df8b509c64a7c59326a86dbfbe0475c6b603
6
+ metadata.gz: 7dc49237b6a85046c15d076ff8c7245745ae661970686ead73c1975cd801802fc8d65255657e41c957cc7d05809820608ac5c4f0f18518387aa2390e6a731e6a
7
+ data.tar.gz: 184af3549253e984f4b7e64db8dd59216ed42e0b5c945fcf79bff50706acdc53b57707ded32dac101a6078dc09335d3ce763fb7049e95d9fa75620049a16b144
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.3.2 (2025-03-06)
5
+ ------------------
6
+
7
+ * Issue - Add back event stream max payload size and headers length checks with a 24MB limit.
8
+
4
9
  1.3.1 (2025-02-13)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.3.1
1
+ 1.3.2
@@ -41,6 +41,12 @@ module Aws
41
41
  # and 4 bytes total message crc checksum
42
42
  OVERHEAD_LENGTH = 16
43
43
 
44
+ # Maximum header length allowed (after encode) 128kb
45
+ MAX_HEADERS_LENGTH = 1024 * 128
46
+
47
+ # Maximum payload length allowed (after encode) 24mb
48
+ MAX_PAYLOAD_LENGTH = 1024 * 1024 * 24
49
+
44
50
  # Encodes Aws::EventStream::Message to output IO when
45
51
  # provided, else return the encoded binary string
46
52
  #
@@ -75,6 +81,9 @@ module Aws
75
81
  encoded_header = encode_headers(message)
76
82
  header_length = encoded_header.bytesize
77
83
  # encode payload
84
+ if message.payload.length > MAX_PAYLOAD_LENGTH
85
+ raise Aws::EventStream::Errors::EventPayloadLengthExceedError.new
86
+ end
78
87
  encoded_payload = message.payload.read
79
88
  total_length = header_length + encoded_payload.bytesize + OVERHEAD_LENGTH
80
89
 
@@ -115,7 +124,10 @@ module Aws
115
124
  pattern ? [value.value].pack(pattern) : value.value,
116
125
  ].pack('a*a*a*')
117
126
  end
118
- header_entries.join
127
+ header_entries.join.tap do |encoded_header|
128
+ break encoded_header if encoded_header.bytesize <= MAX_HEADERS_LENGTH
129
+ raise Aws::EventStream::Errors::EventHeadersLengthExceedError.new
130
+ end
119
131
  end
120
132
 
121
133
  private
@@ -32,6 +32,18 @@ module Aws
32
32
  end
33
33
  end
34
34
 
35
+ class EventPayloadLengthExceedError < RuntimeError
36
+ def initialize(*args)
37
+ super("Payload length of a message should be under 24mb.")
38
+ end
39
+ end
40
+
41
+ class EventHeadersLengthExceedError < RuntimeError
42
+ def initialize(*args)
43
+ super("Encoded headers length of a message should be under 128kb.")
44
+ end
45
+ end
46
+
35
47
  end
36
48
  end
37
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-eventstream
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-13 00:00:00.000000000 Z
11
+ date: 2025-03-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Amazon Web Services event stream library. Decodes and encodes binary
14
14
  stream under `vnd.amazon.event-stream` content-type