diff options
author | exiftool <exiftool@users.sourceforge.net> | 2023-01-04 09:25:04 -0500 |
---|---|---|
committer | exiftool <exiftool@users.sourceforge.net> | 2023-01-04 09:25:04 -0500 |
commit | 19d09138d8ad75d0221435fb7a16a415625a53e5 (patch) | |
tree | 02d51b102b71171412e7ec92e9ba91459a0b8ac0 /lib/Image/ExifTool/Jpeg2000.pm | |
parent | ac4151014c3d9b7d15ebd3bdfdc01405492a05ee (diff) |
Update to 12.53
Diffstat (limited to 'lib/Image/ExifTool/Jpeg2000.pm')
-rw-r--r-- | lib/Image/ExifTool/Jpeg2000.pm | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/Image/ExifTool/Jpeg2000.pm b/lib/Image/ExifTool/Jpeg2000.pm index 95d1d78a..248172d8 100644 --- a/lib/Image/ExifTool/Jpeg2000.pm +++ b/lib/Image/ExifTool/Jpeg2000.pm @@ -444,7 +444,7 @@ my %j2cMarker = ( ProcessProc => \&Image::ExifTool::ProcessTIFF, WriteProc => \&Image::ExifTool::WriteTIFF, DirName => 'EXIF', - Start => '$valuePtr + 4', + Start => '$valuePtr + 4 + (length($$dataPt)-$valuePtr > 4 ? unpack("N", $$dataPt) : 0)', }, }, ); @@ -1096,11 +1096,16 @@ sub ProcessJpeg2000Box($$$) if ($$tagInfo{SubDirectory}) { my $subdir = $$tagInfo{SubDirectory}; my $subdirStart = $valuePtr; + my $subdirLen = $boxLen; if (defined $$subdir{Start}) { - #### eval Start ($valuePtr) + #### eval Start ($valuePtr, $dataPt) $subdirStart = eval($$subdir{Start}); + $subdirLen -= $subdirStart - $valuePtr; + if ($subdirLen < 0) { + $subdirStart = $valuePtr; + $subdirLen = 0; + } } - my $subdirLen = $boxLen - ($subdirStart - $valuePtr); my %subdirInfo = ( Parent => 'JP2', DataPt => $dataPt, @@ -1118,7 +1123,8 @@ sub ProcessJpeg2000Box($$$) my $subTable = GetTagTable($$subdir{TagTable}) || $tagTablePtr; if ($outfile) { # remove this directory from our create list - delete $$et{AddJp2Dirs}{$$tagInfo{Name}}; + delete $$et{AddJp2Dirs}{$$tagInfo{Name}}; # (eg. 'EXIF') + delete $$et{AddJp2Dirs}{$boxID}; # (eg. 'Exif') my $newdir; # only edit writable UUID, Exif and jp2h boxes if ($uuid or $boxID eq 'Exif' or ($boxID eq 'xml ' and $$et{IsJXL}) or @@ -1376,7 +1382,7 @@ files. =head1 AUTHOR -Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com) +Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com) This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. |