exifr 1.3.7 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/exifr/tiff.rb +12 -8
  3. data/tests/tiff_test.rb +6 -1
  4. metadata +4 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 875a312186a0f46c69201e260de535974566c112d4198f91c603c5a57112910d
4
- data.tar.gz: 5735851e875b2a76f9bb73fb6a4556548fa1ae18ad8d0a0f5ed970648769054c
3
+ metadata.gz: 19c3f1b08e84425d9d0b8a6e6ee11bd2e25190a49ce34d42ea99800f5030fe20
4
+ data.tar.gz: 9a834f93b1a02e87bf401b09a033b25fb8b05625b0a60a8795e9ee65e1ea064c
5
5
  SHA512:
6
- metadata.gz: b7b828732884dddb926221ae91ab87e5bee58fdd39a31b26beb1b794db1764661864d2b67844e2ca2e8b5d6b728464005602c927dd0d7fb652f7f57d5a87040c
7
- data.tar.gz: 828884d3ff08fa3b1855a233fe31868516c31b9cf6f2487dd0db4274e2fb28e643c02b5df3ae0b247033f7cc2afc45e46aef6826ec1ba14fe294a644a9a8f549
6
+ metadata.gz: b4fc267041e9090a85eb5ca2a0bfc2fae3d36a72aa45ab716209e6e5e896a775957b65251587e16e7c4e3f0e3c2e491805ce226c68b9b189a8b5bdaf506ebc15
7
+ data.tar.gz: f39334aa7142a3b918edf30fa3bd6424ddc50c1906beb2c9d5bf384bc939fba35b410d2ee801410769929a29895e75b223d443af01d7acf7752fbf96adad0fa6
@@ -487,17 +487,19 @@ module EXIFR
487
487
 
488
488
  pos = offset || @data.readlong(4)
489
489
  num = @data.readshort(pos)
490
- pos += 2
491
490
 
492
- num.times do
493
- add_field(Field.new(@data, pos))
494
- pos += 12
495
- end
491
+ if pos && num
492
+ pos += 2
493
+
494
+ num.times do
495
+ add_field(Field.new(@data, pos))
496
+ pos += 12
497
+ end
496
498
 
497
- @offset_next = @data.readlong(pos)
499
+ @offset_next = @data.readlong(pos)
500
+ end
498
501
  rescue => ex
499
502
  EXIFR.logger.warn("Badly formed IFD: #{ex}")
500
- @offset_next = 0
501
503
  end
502
504
 
503
505
  def method_missing(method, *args)
@@ -525,7 +527,7 @@ module EXIFR
525
527
  end
526
528
 
527
529
  def next?
528
- @offset_next != 0 && @offset_next < @data.size
530
+ @offset_next && @offset_next > 0 && @offset_next < @data.size
529
531
  end
530
532
 
531
533
  def next
@@ -600,6 +602,8 @@ module EXIFR
600
602
  end
601
603
  rationals
602
604
  end
605
+ else
606
+ return
603
607
  end
604
608
 
605
609
  if len && pack && @type != 7
@@ -55,7 +55,7 @@ class TIFFTest < TestCase
55
55
  end
56
56
 
57
57
  def test_dates
58
- (all_test_tiffs - [f('weird_date.exif'), f('plain.tif'), f('endless-loop.exif')]).each do |fname|
58
+ (all_test_tiffs - [f('weird_date.exif'), f('plain.tif'), f('endless-loop.exif'), f('truncated.exif')]).each do |fname|
59
59
  assert_kind_of Time, TIFF.new(fname).date_time
60
60
  end
61
61
  assert_nil TIFF.new(f('weird_date.exif')).date_time
@@ -184,6 +184,11 @@ class TIFFTest < TestCase
184
184
  assert true
185
185
  end
186
186
 
187
+ def test_should_read_truncated
188
+ TIFF.new(f('truncated.exif'))
189
+ assert true
190
+ end
191
+
187
192
  def test_user_comment
188
193
  assert_equal("Manassas Battlefield", TIFF.new(f('user-comment.exif')).user_comment)
189
194
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exifr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.7
4
+ version: 1.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - R.W. van 't Veer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-11 00:00:00.000000000 Z
11
+ date: 2020-09-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
@@ -102,7 +102,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  requirements: []
105
- rubygems_version: 3.1.4
105
+ rubyforge_project:
106
+ rubygems_version: 2.7.6
106
107
  signing_key:
107
108
  specification_version: 4
108
109
  summary: Read EXIF from JPEG and TIFF images