Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terminate empty ASCII strings #1486

Merged
merged 3 commits into from
Mar 11, 2021
Merged

Terminate empty ASCII strings #1486

merged 3 commits into from
Mar 11, 2021

Conversation

kmilos
Copy link
Collaborator

@kmilos kmilos commented Mar 10, 2021

Fixes #1484

@kmilos kmilos requested a review from clanmills March 10, 2021 21:03
Copy link
Collaborator

@clanmills clanmills left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you augment the test suite, please?

Is there a less obtuse if statement, such as:

value_ += value_.size() ? '' : '\0';

@kmilos
Copy link
Collaborator Author

kmilos commented Mar 11, 2021

Not the same thing - I presume the check whether the non-empty string is already terminated was there for a reason...

I'll work on that test case.

@clanmills
Copy link
Collaborator

If you don't want to change that code, please a comment to explain it and reference this bug report.

I would prefer that you change it.

@clanmills clanmills added this to the v0.27.4 milestone Mar 11, 2021
@clanmills clanmills changed the title Terminate empty ASCII strings as well Terminate empty ASCII strings Mar 11, 2021
@clanmills
Copy link
Collaborator

I've changed my mind. Your code's good and I'm happy if you add a comment.

 int AsciiValue::read(const std::string& buf)
    {
        value_ = buf;
        // ensure count>0 and nul terminated # https://github.com/Exiv2/exiv2/issues/1484
        if (value_.size() == 0 || value_[value_.size()-1] != '\0') value_ += '\0';
        return 0;
    }

Here's a test: tests/bugfixes/github/test_issue_1484.py

# -*- coding: utf-8 -*-

from system_tests import CaseMeta, CopyTmpFiles, path
@CopyTmpFiles("$data_path/Stonehenge.exv")

class test_issue_1484(metaclass=CaseMeta):
    url       = "https://github.com/Exiv2/exiv2/issues/1484"
    filename  = path("$tmp_path/Stonehenge.exv")
    commands  = [ "$exiv2 -g Copyright                            $filename" 
                , "$exiv2 -M\"set Exif.Image.Copyright Ascii ''\" $filename"
                , "$exiv2 -g Copyright                            $filename"
                ]
    stdout   =  ["","","""Exif.Image.Copyright                         Ascii       1  
"""]
    stderr = [""]*len(commands)
    retval = [ 1,0,0]

@kmilos
Copy link
Collaborator Author

kmilos commented Mar 11, 2021

Thanks Robin, you were quicker ;)

@clanmills
Copy link
Collaborator

We want to do things quickly and efficiently. When the CI turns green, I will merge and close this one.

Much the same with the mime matters. If you tweak BmffImage::mimeType() to generate the mime types that you consider appropriate, I'll update the test code.

Copy link
Collaborator

@clanmills clanmills left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good Job. Thanks for doing this.

@clanmills clanmills marked this pull request as draft March 11, 2021 13:56
@clanmills
Copy link
Collaborator

Whoops. Found a way to break the fix! If you fix the C++, I'll give you the modified code for test_issue_1484.py

845 rmills@rmillsm1:~/temp $ exiv2 -M'set Exif.Image.Copyright ' Stonehenge.jpg 
846 rmills@rmillsm1:~/temp $ exiv2 -g Copyright Stonehenge.jpg 
Exif.Image.Copyright                         Ascii       0  
847 rmills@rmillsm1:~/temp $ 

@kmilos
Copy link
Collaborator Author

kmilos commented Mar 11, 2021

Nice catch, grrrr...

The debugger session will have to wait for a slot.

@clanmills
Copy link
Collaborator

The revised code is:

// ensure count>0 and nul terminated # https://github.com/Exiv2/exiv2/issues/1484
if (value_.size() == 0 || (value_.size() > 0 && value_[value_.size()-1] != '\0')) value_ += '\0';

And the test is:

# -*- coding: utf-8 -*-

from system_tests import CaseMeta, CopyTmpFiles, path
@CopyTmpFiles("$data_path/Stonehenge.exv")

class test_issue_1484(metaclass=CaseMeta):
    url       = "https://github.com/Exiv2/exiv2/issues/1484"
    filename  = path("$tmp_path/Stonehenge.exv")
    commands  = [ "$exiv2 -g Copyright                            $filename" 
                , "$exiv2 -M\"set Exif.Image.Copyright Ascii ''\" $filename"
                , "$exiv2 -g Copyright                            $filename"
                , "$exiv2 -M\"del Exif.Image.Copyright Ascii\"    $filename"
                , "$exiv2 -g Copyright                            $filename"
                , "$exiv2 -M\"set Exif.Image.Copyright\"          $filename"
                , "$exiv2 -g Copyright                            $filename"
                , "$exiv2 -M\"set Exif.Image.Copyright me 2021-\" $filename"
                , "$exiv2 -g Copyright                            $filename"
                ]
    stdout   =  ["","",
"""Exif.Image.Copyright                         Ascii       1  
""","","","",
"""Exif.Image.Copyright                         Ascii       1  
""","",
"""Exif.Image.Copyright                         Ascii       9  me 2021-
"""]
    stderr = [""]*len(commands)
    retval = [1,0,0,0,1,0,0,0,0]
    

@clanmills clanmills marked this pull request as ready for review March 11, 2021 18:32
Copy link
Collaborator

@clanmills clanmills left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kmilos. I've pushed the fix. If you're happy and the CI is green, please merge and close.

src/value.cpp Show resolved Hide resolved
@kmilos kmilos merged commit b3dfabd into 0.27-maintenance Mar 11, 2021
@kmilos kmilos deleted the fix_1484_empty_ascii branch March 11, 2021 20:44
clanmills added a commit that referenced this pull request Mar 12, 2021
This was referenced Mar 12, 2021
clrpackages pushed a commit to clearlinux-pkgs/exiv2 that referenced this pull request Jun 17, 2021
…27.4

Alejandro Criado-Pérez (1):
      Added ES translations

Alex Esseling (2):
      add_cr3_tags
      fixing exceptions and reordering tags

Christoph Hasse (10):
      Implement handling of new Nikon LensData version 8.0 and 8.01
      try and  fix ci-build
      try and  fix ci-build 2/N
      try and  fix ci-build 3/N
      add shutter mode and mechanical shutter count to nikon makernote 3
      include test of shutter mode and mech shutter count in lensdata 8 test
      use EXV_PRINT_TAG macro instead of specific print function
      fix formatting
      introduce parseTiff method to parse exif
      run clang-format on new files

Freddie Witherden (2):
      Add support for Sony lens aberration correction parameters.
      Add support for Fuji's CropMode tag.

Ingo Weyrich (1):
      Use a.rfind(b, 0) == 0 instead of a.find(b) == 0 to reduce processing time when checking that a starts wit b, #1459

Jan Tojnar (2):
      cmake: Fix paths with absolute GNUInstallDirs
      cmake: Fix include_directories for exiv2lib target

Kevin Backhouse (26):
      Fix incorrect delete.
      Regression test for Exiv2/exiv2#1530
      Fix integer overflow.
      Fix test name
      Use $kerCorruptedMetadata, rather than hard-coded string.
      Regression test for GHSA-5p8g-9xf3-gfrr
      Improve bound checking in WebPImage::doWriteMetadata()
      Regression test for GHSA-jgm9-5fw5-pw9p
      Better bounds checking in Jp2Image::encodeJp2Header()
      Fix signed/unsigned compiler warnings.
      Regression test for GHSA-8949-hhfh-j7rj
      Add more bounds checks in Jp2Image::encodeJp2Header
      Regression test for GHSA-7569-phvm-vwc2
      Add bounds check in Jp2Image::doWriteMetadata().
      Fix infinite loop caused by subBox with zero size.
      Prevent large allocation.
      Initialize field.
      Use readOrThrow to check error conditions of iIo.read().
      Fix quadratic complexity performance bug.
      Regression test for Exiv2/exiv2#1570.
      Fix out-of-bounds read in bmffimage.cpp
      Stop the test from failing when EXIV2_ENABLE_BMFF=Off.
      Fix signed/unsigned compiler warning.
      Fix signed/unsigned compiler warning.
      Fix LGTM warning about format specifier
      Check that the string is properly terminated.

Lemures Lemniscati (1):
      samples/xmpprint.cpp: Fix typos

LeoHsiao (76):
      Converted two bash test scripts into Python scripts as an example
      Correct ioTest's execution directory
      Rename unit_test and import it in system_tests.py
      Update the documentation for the test cases
      Let bash_test read the configuration parameters from suite.conf
      Rename bash_test to bash_tests
      Wrap shell commands in single quotes
      Rename tests/README.md
      Rename the variable `output` to `out`
      Add default parameter value to the function 'runTest'
      Define a class 'Log' to merge logs into Python exception message
      Rewrite testcase 'addmoddel'
      Add methods setUp() and tearDown()
      Add some functions to replace shell commands: cp, rm, cat, grep, save, diff
      Rewrite testcase 'conversions'
      Rewrite testcase 'crw-test'
      Clear the log buffer after test
      Rewrite testcase 'exifdata-test'
      Add functions: mv, md5sum
      Rewrite testcase 'icc-test'
      Optimize class 'Log' and add class 'Conf'
      Add excute() to replace runTest()
      Optimize cat(), save() and excute() to handle bytes type content
      Rename bash_tests.utils as BT
      Optimize Conf.init() in bash_tests.utils
      Completed test_io()
      Remove copyTestFiles()
      Add class 'Output' to simulate the stdout buffer
      Refactor exiv2-test.sh to test_exiv2()
      Rewrite diff() to simulate the output of GNU diff
      Refactor imagetest.sh to test_image()
      Rename class 'Conf' to 'Config'
      Rename test cases from 'test*()' format to '*test()' format
      Mainly optimize utils.py:
      Add functions: diff_byte(), diffCheck()
      Refactor iptctest.sh to iptc_test()
      Modify printTest(): Ignore the difference of data_dir
      Add environment variables: EXIV2_HTTP, EXIV2_PORT
      Adjust line breaks, binary extension on Windows
      Adjust the format of the command on Windows
      Ignore printTest() output differences on Windows
      Ignore conversions_test() output differences on Windows
      Ignore .vscode
      Deprecated Config.exiv2_ext
      Refactor modify-test.sh to iso65k_test()
      Refactor path-test.sh to path_test()
      Adjust code spacing
      Refactor function execute() to class Executer
      Refactor modify-test.sh to modify_test()
      Add find()
      Refactor preview-test.sh to preview_test()
      Refactor stdin-test.sh to stdin_test()
      Refactor stringto-test.sh to stringto_test()
      Refactor tiff-test.sh to tiff_test()
      Add description for the module lxml
      Refactor version_test.sh to version_test()
      Refactor webp-test.sh to webp_test()
      Optimize diff()
      Refactor write-test.sh to write_test()
      Refactor write2-test.sh to write2_test()
      Refactor xmpparser-test.sh to xmpparser_test()
      Ignore the difference in the path separator for stdin_test
      Fix webp_test: correct a test file name
      Enhance function find(), cp(), rm(), mv()
      add nls_test()
      Fix variable LANG in nls_test()
      Correct the output of exiv2-test
      Fix nls_test(): Check only part of the output
      Supports setting EXIV2_HTTP or EXIV2_PORT to '' to ignore HTTP test
      Support to display the command to execute
      Support variables: DYLD_LIBRARY_PATH, LD_LIBRARY_PATH
      Set the variable EXIV2_ECHO when executing `make python_tests VERBOSE=1`
      let `make python_tests` runs in verbose mode
      Set the default value for the variable VALGRIN to empty
      Cancel adding a newline when testing
      Simplify functions: runTest(), verbose_version()

Leonardo Brondani Schenkel (2):
      Detect Sigma 18-35mm f/1.8 DC HSM (firmware 2.x)
      Make lens name consistent with models 150 and 368

Luis Diaz Mas (1):
      Use check_cxx_compiler_flags instead of C version

Luis Díaz Más (17):
      Use ctime instead of time.h
      Assume existence of stdint.h
      Move winsock2 inclusion to http.cpp
      WIN32_LEAN_AND_MEAN propagated with exiv2lib target
      Include winsock2 at the beginning of http.cpp
      Revert "change implementation of Exiv2::base64encode() to adopt implementation from same URL as base64decode()."
      Hide exiv2-xmp dependency in CMake config file:
      Use latest available version of Conan in CI
      Hide zlib absolute path in cmake config file
      Adding Ubuntu 18.04 & 20.04 to travis builds
      CI: Special packages for Ubuntu 20.04
      CI: Fix how we pass CMake options in travis
      Modify strncpy0 to avoid warning
      ci: use always pip3 for installing conan
      ci: Use same travis jobs as in main (drop Ubuntu 16.04)
      New mergify config file to forward changes to main
      ci-travis: trying to fix valgrind build

Miloš Komarčević (40):
      Remove EXIV2_EXT variable references
      Remove remaining vestiges of binary_extension
      Add more easy accessors for Exif & TIFF/EP overlap
      Add DateTimeOriginal to easyaccess
      Test cover for added easyaccess methods
      Fix easyaccess-test
      Preserve trailing space in test_easyaccess.py output
      Fix CanonFi typo in man page
      exiv2 pr uses easyaccess API (co-authored with clanmills)
      actions: simplify print summary using easyaccess
      Add some DNG related tag values
      Fix syntax error, improve value name style
      Add DNG CFALayout values
      Also use existing light source pretty print for DNG
      Update CalibrationIlluminant test
      Add remaining DNG 1.3 tag values
      Minor DNG related changes after review
      Moved ambient tags to Exif only list, other refactoring
      Complete DNG 1.4 spec support
      Fix Pana tag typo and improve Fuji tag description
      Add DNG 1.5 tags and values
      Promote remaining SHORT/LONG tags default type
      Pretty print PlanarConfig
      Add DNG 1.6 support
      Add DNG 1.6 test
      Fix MinGW build for Ninja generator
      Adding DNG 1.6 triple-illuminant calibration tags
      Include HEIC type in docs
      Minor whitespace formatting
      Revert style changes
      Terminate empty ASCII strings as well
      Include HEIC type explicitly
      Add comment and test case
      Include a few more BMFF major brands
      Add mif1 brand to heif mime type
      Replace tabs to fix indentation issues
      Fix readme typo
      Check for symlinks when uninstalling
      Match closing statement, doh
      Update bmffimage.hpp include order and path (#1648)

Olli Lupton (2):
      Add LensType entry for Olympus M.Zuiko Digital ED 17mm F1.2 Pro lens.
      Add a test for PR 1375, checking the Olympus 17mm f/1.2 Pro lens is recognised correctly.

Peter Kovář (17):
      [WIP] Add ISO/IEC Base Media File Format
      Small corrections
      [WIP] Added box types
      [WIP] Base Media File Format
      [WIP] Redefine tags
      [WIP] Another try
      [WIP] Correction
      [WIP] 64-bit length
      [WIP] Correction to make Travis CI happy
      [WIP] Yet another type cast correction to make Travis CI happy
      [WIP] Fixed Image Spatial Extents Property Handling
      Corrected format string
      Add CR3 image dimensions
      Update README.md
      Add artist tag
      Revert "Add artist tag"
      Remove executable bits from test data files

Pydera (1):
      Fix out of buffer access in #1529

Robin Mills (179):
      fix_1236_0.27
      Reverting changes to test/icc-test.sh for investigation.
      Fix correctly this time and tested with the user files.  Test suite updated to use Reagan2.jp2
      Fixed typo declaration of pad when writing ICC profile.
      Update icc-test.out
      Disable libiconv support when building with Visual Studio.
      fix_1266_GPSProcessingMethod
      fix_1268_GPSProcessingMethod
      fix_solaris_stack_protection_0.27
      fix_solaris_stack_protection_0.27
      fix_1297_crwtest_linux_coverage  This is a copy of master/.travis.yml to see what happens on the CI.
      fix_cygwin_stack_protection_0.27
      Second effort to unexpose winsock2.h from include <exiv2/exiv2.hpp> using EXIV2_BUILDING_EXIV2 mechanism.
      Updated reference output.  Well spotted, @piponazo.
      Fixing previous incorrect commit.
      fix_1353_mingw_toolchain_0.27
      Exiv2/exiv2#1356 (comment)
      fix_1393_iptc_tags_web_0.27
      I hope I've made a better job of this at this attempt.  I don't thing the "section" enum is of much importance.  I don't believe anything in particular is done with with it.
      Fix tag GPSHPositioningError to use printValue() pretty-printer.
      Clarified definition and use of enum SectionId @kmilos: please review/approve.
      Documentation revision in response to #1394
      New profiles as documented in README-CONAN.md
      Add ribbon to README-SAMPLES.md.  Fixing typos.
      Moved orphaned declaration of exifGPSDirRef.
      Documented exiv2lib_export.h
      Update script cmd64.bat following review by @tester0077
      I hope this is the final change to this PR.
      WIP #1402  rafimage::printStructure() improved formatting.
      bumpRevision_0.27.4.9
      WIP: working to understand how to support tiffIfd in tiffvisitor_int.cpp
      Remove debugging code.
      Add FujiIFD to TiffCreator::tiffGroupStruct_
      Success.  It's working!
      Code/comment tidy.
      Add to test harness.
      Fix significant typo in cmd64.bat
      Pointless change to trigger CI to build again.
      Hoping for CI Contentment!
      Calming Test Suite concerning Continuous and CropMode confusion.
      fix_1431_binary_comment.
      appveyor_mingw_0.27
      Changed APPVEYOR_BUILD_WORKER_IMAGE
      Try again.
      One more time.
      And another go.
      Getting better.
      Modify the path.
      Might build this time.
      Fix typo.
      Run python_tests.
      Reformmated.
      Try again!
      Debugging mingw.yml
      Last change, I hope.
      And another try.
      And another.
      Debugging mingw.yml
      Debugging mingw.yml
      More debugging.
      Debugging
      More debugging.
      Only run python_tests
      Try to build using Cygwin/64
      Debugging cygwin/64
      Cygwin
      Cygwin: Add zlib and expat to install
      Cygwin/64 install depedencies.
      libexpat-devel
      Use C++98 and run python tests.
      Install pip
      Trying to get pip to install.
      Com'on pip3.
      Install libxml2 and libxslt
      python38-libxml2
      Build and test both MinGW/msys2 and Cygwin64
      Fix matrix syntax.
      Try again.
      Build Cygwin and MinGW in parallel.
      Try again.
      Fixing typo
      Rename appveyor configuration file.
      Modified install to only install what's required for BUILD
      Restored 0.27.2 "toString()" behaviour of Exifdatum.value().toString() for CommentValue.
      Fixing test suite.
      Revert "Fixing test suite."
      Revert "fix_1431_binary_comment."
      Revert "Restored 0.27.2 "toString()" behaviour of Exifdatum.value().toString() for CommentValue."
      Revert "Revert "fix_1431_binary_comment.""
      Add test image.
      Add test script.
      Enhanced documentation formatting.
      Fixing test suite.  I've explained the changes in a note in the PR.
      Fix image handler to give jp2image code higher priority than the next isobmff code.
      Rename class ISOBMFF => class bmffImage to match other image handlers.  Removed C++11 style code.  Removed unused code.
      Fixing Linux build/test issues.
      Fix Linux build-breaker when ENABLE_ISOBMFF=False and EXIV2_TEAM_WARNINGS_AS_ERRORS=On
      Modified ci/install.sh to install cmake before dependencies.
      fix_1464_sony2010e Fix c++ code
      fix_1464_sony2010e Add test file and test script
      fix_1464_sony2010e test script
      fix_1471_sony2010_0.27
      Test suite update.
      Change test suite timeout.
      C++ simplification.
      WIP: Refactored readMetadata() into recursive boxHandler()
      Fixing a build breaker.
      Fix linux/CI build breaker.
      Fix msvc/CI build breakers.
      Fix linux/CI build breaker.
      Fixing warnings from LGTM/CI.
      More fixes for LGTM/CI warnings.
      WIP: Added class Iloc and related code.
      Fixed recursion issue in the meta box.
      Tidying up. 1. pixelHeight_. 2. refactored indenter() -> indent(). 3. EXIV2_DEBUG_MESSAGES outputs to std::cerr
      Updating .gitignore.
      Parse Exif in .HEIC/.AVIF
      Cleanup.  1. Recursively process uuid/cano box. 2. Fix LGTM/CI sprintf grumbles. 3. Comment parseTiff() in bmffimage.hpp.
      Tidy up.  Rename Tag::cr3_exif -> Tag:cmt2
      Revised following code review by @hassec.  Thank You, Christoph.
      Remove bmffimage::printStructure() as discussed in review with @hassec.  Corpse removal and cleanup in bmpfimage.hpp
      Added parseXmp() to parse Xmp metadata.
      Fix .CR3 files to call parseXmp().
      Rename test image.
      WIP: adding BmffImage::printStructure() and support for colr box.
      Cosmetic change to -pR/-pS output.
      Adding HIF tests.
      Fix MSVC build breaker and modify test_pr_1475_HIF.py to run on Windows.
      Renamed a test file.
      Test suite updates.
      Add SECURITY.md and reference it from the Security Tab in the GitHub Web UI.
      Following review by @hassec, I use static base64_encoding vector in both Exiv2::base64encode() and Exiv2::base64decode().
      Move system_tests.runTest() and system_tests.verbose_version() to system_tests.BT
      fix_1486_effort2 Exiv2/exiv2#1486 (comment)
      use raise from test_pr1475*.py
      Add unit_tests to suite.conf
      Add python scripts equivalent to test/version_test.sh and unit_test.sh
      Refactor CMakeList.txt to run all tests using tests/runner.py
      Add test/ReadMe.txt
      Fix typos.
      Fix comments.
      Fix LD_LIBRARY_PATH.  Add option arg raw=False to runTest()   Use raw=True in unit_test.py.
      Sniff for unit_tests.exe!
      Better logic and error message.
      exiv2_v27_4_rc1
      exiv2 --verbose --version was reporting have_strerror_r twice!
      Massive code prolog cleanup.
      Exiv2 v0.27.4 RC1 Preview.
      v27_4_rc1_effort2
      Updated the user documents.  Most changes relate to running the test suite.
      Add optional parameter forgive=False to reportTest() for use by nls_test to avoid false fails.
      Downgrade version to 0.27.4.10 = 0.27.4 RC1 Preview.
      Fixing typos.
      Bump revision number to Exiv2 v0.27.4 RC1.  PR will be marked for review.
      Clarify bmff suppport as readonly.
      Set LD_LIBRARY_PATH to run bundled bin/exiv2.
      Push change in PR #1500.  Thank you @kmilos.
      Update releasenotes.txt with more credit for Milos (and trigger macOS/CI which is red).  All platform build on MacMini.
      fix_1507_avif_size0x0
      Documentation Update (as discussed in #1508)
      Use the documented 5 line prolog in every sample application.  Tidy up sample prologs and header code.
      fix_1508_enableBMMF_effort2
      Add test script.
      fix_1504_metacopy_optstring
      fix_1503_JXL_bmff
      Added test file and script.
      Fix build breaker in test_issue_1503.py.
      fix_1522_jp2image_exif_asan
      test fix_1522_jp2image_exif_asan
      update_README_localisation
      v0.27.4RC2
      v0.27.4 RC2 Release Notes.
      bump_release_number_0.37.4.39
      fix_enableBMFF
      Bump version number.
      Update releasenotes.txt
      update changelog
      fix_broken_man_page
      v0.27.4

Thomas Petazzoni (1):
      Properly detect availability of flags in cmake/compilerFlags.cmake (#1252)

clanmills (78):
      fix_1276_BUILD_PO_0.27
      Do not build WebReady with Visual Studio.
      Build with C++11
      Disable coverage (see #1297)
      Tweak conversion.sh for TZ conversion error in MSVC.
      Fix #1300
      Use ubuntu on CI
      Remove .. from CMAKE_OPTIONS.
      -CMAKE_CXX_STANDARD=98 and Disable UNIT_TESTS.
      Simplify ci/run.sh
      Don't use ASAN on CI.
      -DCMAKE fix.  Thanks @piponazo
      Disable Fedora/CentOS/Archlinux on gitlab/CI.
      fix 1307 ASAN issues with RemoteIo
      fix_1329_remove_bigtiff_0.27
      Remove bigtiffimage.hpp from include/exiv2/CMakeLists.txt
      Fix: https://travis-ci.org/github/Exiv2/exiv2/jobs/730867927
      run_stdin-test.sh_0.27
      fix_1335_winsock2_0.27
      pythonic_bash_ci_0.27
      temporarily disable stdin-test and webp-test to get the CI operational again.
      nls-test script and reference file.
      Makefile updated to run nls-test.sh as part of bash_tests
      Adding test files to test suite.
      Script and reference file changes.
      Adding test files and bash script/reference-output
      Code changes
      C++ changes requested by @piponazo.  Fix python png_test() recommended by @LeoHsiao1.  Update reference output.
      Enable CentOS on gitLab-ci.
      Adding test files to test suite.
      Script and reference file changes.
      Temporarily neuter DEXIV2_TEAM_USE_SANITIZERS to get CentOS to build.
      Revert the last two changes.  GitLab/centOS makes no sense.  Will build on MacMini.
      Fix compiling http.cpp and reinstate centOS on gitLab.
      Disable centOS on CI.  The web-server goes crazy althought this doesn't happen in the terminal on centOS.
      Fixing variable LANG
      replace base64encode in src/futils.cpp
      change implementation of Exiv2::base64encode() to adopt implementation from same URL as base64decode().
      Add +x (execute) attribute to shell scripts.
      Fix handling of environment string VERBOSE
      Don't set --verbose in makefile.  Don't treat exiv2_echo == VERBOSE.
      Fixing VERBOSE in environment (args.verbose==2 when set.  args.verbose==0 when not set).
      Fixing EXIV2_PORT on MinGW/msys2.
      Disable OpenSUSE on CI.  It's complaining about being unable to install the correct version of curl.
      Adding support for environment strings EXIV2_HTTP and EXIV2_PORT
      Adding support for VALGRIND and EXIV2_BINDIR
      Disable exiv2 option --binary
      Adding python test
      Updating man page.
      fix_929_exif2.31_0.27
      Fix python test breaker
      Fixing exiv2-test.sh message when test/tmp is empty.
      Adding test images.
      Changed CI build default -DEXIV2_ENABLE_BMFF=On.  Fixed suite to run with/without bmff.  -pS and -pR same for bmff.
      Added 2.19 Support for bmff files
      Updated for bmff.
      Re-awaken obsolete command-line argument --binary and store class Task.
      refactored setModeAndPrintStructure() to respect class Task.binary_ when printing ICC profiles.
      Minor corrections and clarification concerning enableBMFF().
      Fix box.length == to use bigEndian decode!  Fix toAscii() to emit on ascii 32-127 bytes.
      Test suite update.
      With good fortune, bmffimage is ready for review.
      Replaced the ugly code in Exiv2::base64encode() and update the test suite.
      Fix Linux build breakers.
      Replaced Exiv2::base64encode() because last effort failed unit test on msvc.
      This should be it.  Test suite fixed.
      Trick to avoid msvc issue with final line of base64 data.
      Fix ICC profile handling (my bad, iOS files are correct).
      Restoring i < dataLength trigraph that I should not have removed.
      Restore -pC --binary to output everything.  Test suite updated to suit.
      Fix #1358.  This should be in a different PR.  Keep changes to base64 encode/decode together.
      Another effort to fix base64decode and associated unit test.
      Updated to adopt Review suggestions by @kmilos.  Thank You, Milos.
      Fix msvc build breaker.
      Thank You @piponazo for the code review.  I've made the changes you requested.
      Following review by @piponazo, I am clarifying the bool return from Exiv2::enableBMFF().
      fix_1473_LocationShown
      Exiv2/exiv2#1486 (comment)

czgnp (3):
      Update canonmn_int.cpp
      and a test case for Python
      and the test files

evanokeeffe (1):
      found a bug in metacopy, the -x parameter wasn't in the optstring. rectified that

hanno@schwalm-bremen.de (3):
      Adding support for DefaultUserCrop and BaselineExposureOffset
      Fix typo and remove empty line.
      Revert exv commit and remove empty line.

postscript-dev (7):
      Add missing "Xmp" to project description
      Update PACKAGE_URL and PROJECT_DESCRIPTION text
      Fix langAltValue::read() parsing
      Add static to LangAltValue::read() const values
      Change LangAltValue::read() tests to unitTests
      Fix spelling mistakes in LangAltValue::read()
      Update exiv2 man page - langAlt format

tbeu (1):
      Fix write ability flags of PSD files (#1260)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Empty ASCII string ends up encoded with count of 0 instead of 1
3 participants