hexapdf 0.15.8 → 0.15.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4953ab56f7c03c62e4f4e2ef1aa51a8a58f98c3d24725eb86dd6bc13419bd2d2
4
- data.tar.gz: c4ac38e280f646eecf512481570ddc8670b48c9ac32601f55b24748f4044344b
3
+ metadata.gz: 24d17dfd6c8dc9e3f7014e1ea769dede6f8cea81529bb201a8447f21873d3b25
4
+ data.tar.gz: 7165a2e11983731ba2597d2e4a824415abc96936d2b58f3fb737a4fed94dcf16
5
5
  SHA512:
6
- metadata.gz: 529f8f88d9553f300b842838c1f00e8bed3e05adecfe4478f81d41fcb6431fce888f56b76b2747a65a2935cbb76a6792dce2b1f480dcb120634e1932e461c883
7
- data.tar.gz: 9e71874d7901145045fab5791ca09b3ec9cc8f9a9243366b0329cb2570c58408d4595ee37e995a22ce2c099127bc6bdc732e5d3562bde834be2fc57aa3f35b8a
6
+ metadata.gz: 244332a4f024c90cf6344b462ed422a5f73b32d3a4d04d0dcdadc6e7ede2cd0724f7a3329fa3aad68c99e47f49a9dff66806d9b8b152b9551eaecd7365c807d4
7
+ data.tar.gz: 06c4b9fd5ecd8f045a37e85ce4a6539f52b48bb16fb685290bcc2a0210b5f2e66bcfa9b7efb1115c45dd1618de9421c479d7a66d84556d1b9c37b19b1f8b6075
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.15.9 - 2021-09-04
2
+
3
+ ### Fixed
4
+
5
+ * Handling of files that contain stream length values that are indirect objects
6
+ not referring to a number
7
+
8
+
1
9
  ## 0.15.8 - 2021-08-16
2
10
 
3
11
  ### Fixed
@@ -165,7 +165,7 @@ module HexaPDF
165
165
  else
166
166
  0
167
167
  end
168
- @tokenizer.pos = pos + length
168
+ @tokenizer.pos = pos + length rescue pos
169
169
 
170
170
  tok = @tokenizer.next_token
171
171
  unless tok.kind_of?(Tokenizer::Token) && tok == 'endstream'
@@ -37,6 +37,6 @@
37
37
  module HexaPDF
38
38
 
39
39
  # The version of HexaPDF.
40
- VERSION = '0.15.8'
40
+ VERSION = '0.15.9'
41
41
 
42
42
  end
@@ -113,13 +113,21 @@ describe HexaPDF::Parser do
113
113
  assert_nil(object)
114
114
  end
115
115
 
116
- it "recovers from an invalid stream length value" do
116
+ it "recovers from a stream length value that doesn't reflect the correct length" do
117
117
  create_parser("1 0 obj<</Length 4>> stream\n12endstream endobj")
118
118
  obj, _, _, stream = @parser.parse_indirect_object
119
119
  assert_equal(2, obj[:Length])
120
120
  assert_equal('12', TestHelper.collector(stream.fiber))
121
121
  end
122
122
 
123
+ it "recovers from an invalid stream length value" do
124
+ create_parser("1 0 obj<</Length 2 0 R>> stream\n12endstream endobj")
125
+ @document.add([5], oid: 2)
126
+ obj, _, _, stream = @parser.parse_indirect_object
127
+ assert_equal(2, obj[:Length])
128
+ assert_equal('12', TestHelper.collector(stream.fiber))
129
+ end
130
+
123
131
  it "works even if the keyword endobj is missing or mangled" do
124
132
  create_parser("1 0 obj<</Length 4>>5")
125
133
  object, * = @parser.parse_indirect_object
@@ -40,7 +40,7 @@ describe HexaPDF::Writer do
40
40
  219
41
41
  %%EOF
42
42
  3 0 obj
43
- <</Producer(HexaPDF version 0.15.8)>>
43
+ <</Producer(HexaPDF version 0.15.9)>>
44
44
  endobj
45
45
  xref
46
46
  3 1
@@ -72,7 +72,7 @@ describe HexaPDF::Writer do
72
72
  141
73
73
  %%EOF
74
74
  6 0 obj
75
- <</Producer(HexaPDF version 0.15.8)>>
75
+ <</Producer(HexaPDF version 0.15.9)>>
76
76
  endobj
77
77
  2 0 obj
78
78
  <</Length 10>>stream
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hexapdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.8
4
+ version: 0.15.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Leitner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-16 00:00:00.000000000 Z
11
+ date: 2021-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cmdparse