Seth Parker
892d39e3bf
Add missing libintl include dirs to exiv2lib_int and exiv2
6 years ago
Michał Walenciak
6887822243
removing unused header generation
6 years ago
Michał Walenciak
a7340a3801
removinf usage of EXIV2_DEPRECATED macro
...
It can expand to [[deprecated]] which cannot be combined
with result of EXIV2API macro expansion: __attribute__(...)
6 years ago
Michał Walenciak
aae88060ca
Use ${CMAKE_INSTALL_LIBDIR} as proper files location
6 years ago
Michał Walenciak
4ddd44e9da
create & install exiv2ConfigVersion.cmake
6 years ago
Luis Diaz Mas
127c2eac0e
Fix warnings on MSVC
7 years ago
Luis Díaz Más
704fc56d52
Keep the profileName from readMetadata and use it in writeMetadata
7 years ago
Luis Díaz Más
e385599067
Refactoring to make the doe more readable. Fix icc tests
7 years ago
Luis Díaz Más
436b0f87b5
Add missing header when -DDEBUG is present
7 years ago
Luis Díaz Más
d1097fab59
Factor our function to read PNG Chunk info
7 years ago
Luis Díaz Más
914a8c5585
Factor out exception throw in different places inside isPngType
7 years ago
Luis Diaz Mas
88f22e13cb
Fix ICC profile in PNG images
7 years ago
Luis Diaz Mas
6abdb7e77a
Install new file exiv2lib_compiler_detection.h
7 years ago
Luis Diaz Mas
9d62998973
cmake: compile video sources conditionally
7 years ago
Luis Díaz Más
798396e71a
cmake: use CONAN_PKG::OpenSSL only if NOT APPLE
7 years ago
Luis Díaz Más
08478c3217
Fix SSL linking issues on Windows
7 years ago
Luis Díaz Más
4fa2bc7008
Propagate CURL linkage when it is enabled
7 years ago
Luis Díaz Más
04c9b181cc
Fix #644 . Export specializations of BasicError
...
- Only export BasicError::setMsg which is the only implementation present in the .cpp
- Only export BasicError specialization on __APPLE__
It seems that gcc automatically adds the attribute when the visibility
settings are set to hidden. See this link for more information:
https://reviews.llvm.org/D35388
7 years ago
Luis Diaz Mas
6f8d8e3da6
cleanup header inclusions in API
7 years ago
Luis Diaz Mas
acc9fa012d
Reliable detection of strerror_r variants
7 years ago
Andreas Schneider
ed3a0f1341
cmake: Install header files without globbing
...
Fixes #627
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 0b34ccb9a3b26cd1c5267c6a5c15e9fa1a665adb)
7 years ago
Andreas Schneider
6062b1b803
cmake: Rename xmp to exiv2-xmp to avoid name conflicts
...
There is already a libxmp file by the xmp project on https://xmp.sf.net .
To avoid issues prefix with exiv2.
Fixes #624
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
(cherry picked from commit 89509d7a3915ba474cbc3f8c85ab9bec4954ceda)
7 years ago
Alexander Steffen
8453ef0466
Add Tamron SP 24-70mm f/2.8 Di VC USD G2 for Canon
...
Fixes #330 .
7 years ago
Alexander Steffen
f586d57bb1
Add various Sigma and Canon lenses
7 years ago
Alexander Steffen
cf4f14c67b
Add new IDs for Sigma lenses with firmware 2.00
...
The firmware update changed the IDs, so that the same lens may now be known
under different IDs.
7 years ago
Natanael Copa
63f1fde85b
Fix path for errno.h
...
Fix warnings when built with musl libc by using the correct path for
errno.h as defined in POSIX.
Fixes the following warning:
In file included from /home/ncopa/src/exiv2/src/http.cpp:74:
/usr/include/sys/errno.h:1:2: warning: #warning redirecting incorrect #include <sys/errno.h> to <errno.h> [-Wcpp]
#warning redirecting incorrect #include <sys/errno.h> to <errno.h>
^~~~~~~
7 years ago
Natanael Copa
480430d397
Fix usage of strerror_r
...
Only GNU libc has implementation of the GNU variant of strerror_r, so
also for __GLIBC__ to determine which strerror_r implemenation to use.
This fixes build with musl libc, which makes some, but not all, GNU
extensions available with _GNU_SOURCE.
7 years ago
Luis Díaz Más
17fecb358f
Merge branch 'master' of https://github.com/FreddieWitherden/exiv2 into FreddieWitherden-master
7 years ago
Robin Mills
a9404154bc
Fix: https://github.com/Exiv2/exiv2/issues/585
7 years ago
Robin Mills
88ec8b88ea
Fix #562 for 32 bit builds (don't throw arithmetic exception).
7 years ago
Robin Mills
a33041a8b7
Fix: https://github.com/Exiv2/exiv2/issues/562 for stringFormat() crashes.
7 years ago
Robin Mills
03b4f1deae
Fix: https://github.com/Exiv2/exiv2/issues/580
7 years ago
Robin Mills
56ba273a90
Fix: https://github.com/Exiv2/exiv2/issues/577
7 years ago
Robin Mills
43683f1eff
Fix #531
7 years ago
Robin Mills
23483dff86
#571 Restore the original windows getProcessCode() because Microsoft's GetModuleFileName isn't effective!
7 years ago
Robin Mills
108509a089
Correction to Microsoft sample code! https://docs.microsoft.com/en-gb/windows/desktop/Services/installing-a-service
7 years ago
Robin Mills
9cb6c1e4c9
Correction in futils.cpp
7 years ago
Robin Mills
22e49cc78b
Try to fix https://github.com/Exiv2/exiv2/issues/572
7 years ago
Robin Mills
3af6f43ff0
Fix: https://github.com/Exiv2/exiv2/issues/571
7 years ago
Robin Mills
eab816fd32
src/version.cpp report enable_nls
7 years ago
clanmills
c22a38cfb4
Fix for https://github.com/Exiv2/exiv2/issues/560 (eraseFamily() crashes in MSVC/Debug).
7 years ago
Robin Mills
062bad7535
Adding output for have_regex to version.cpp
7 years ago
Robin Mills
1b136f0657
Revision to PR#557. Restored XmpData::erase() and added XmpData::eraseFamily(). Restored and augumented conversions.sh
7 years ago
Robin Mills
ccd708df24
Fix: https://github.com/Exiv2/exiv2/issues/521
...
conversions.sh reveals a (harmless) order change runTest exiv2 -M'set Xmp.xmp.ModifyDate 2015-04-17T18:10:22Z' v.xmp
7 years ago
Luis Díaz Más
0d7b3ecd1e
Update man page
7 years ago
Luis Díaz Más
4ed5bdc78b
CMake: Supress MSVC PDB warnings
7 years ago
skal
ecaf1dd478
Fix alpha bit detection in VP8L chunks
...
As per the spec ([1]), the alpha_bit is located on the 4th byte of the payload, just after the height.
This seems to fix the bug reported on GIMP ([2]) where an incorrect file was generated.
[1] https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification#2_riff_header
[2] https://gitlab.gnome.org/GNOME/gimp/issues/1818
7 years ago
Luis Díaz Más
6e42c1b55e
Fix #561 . Use proper counter for the idx variable
7 years ago
Luis Díaz Más
34e411d2fc
Fix 547: option -pR only available in Debug mode.
...
Note that the method Params::evalPrint() has been clang-formatted.
7 years ago
Luis Díaz Más
186352e295
conan: copy 3rd party dlls only if the conanDlls folder exists
...
Note that this folder will only exists if at least one of the conan packages managed with the shared option = True.
7 years ago
Robin Mills
89375979d8
https://github.com/Exiv2/exiv2/issues/555
...
I have restored the Macro EXIV2_TEST_VERSION in include/exiv2/version.hpp
I have added an option --version-test to exifprint.cpp to test/validate EXIV2_TEST_VERSION works as documented.
Version strings in Exiv2 v0.27 and later have a fourth digit to indicate the pre-release number of the build.
Pre-release builds should never be used for production purposes.
7 years ago
Luis Díaz Más
ee28e8ae15
CMake: Install public headers
7 years ago
Luis Díaz Más
8e5ee7a0e6
Fix debug flag preprocessor condition
7 years ago
Luis Díaz Más
9547cddbd1
Add protection around EXV_LOCALEDIR definition
7 years ago
clanmills
c5cd09bebe
Fix getProcessPath() on Cygwin
7 years ago
clanmills
2f70ae4305
Fix getProcessPath()
7 years ago
Robin Mills
8a6cd5d24e
Fix -vVg loops
7 years ago
Luis Díaz Más
0c871a5878
CMake: Align sources and headers in two columns
7 years ago
Luis Díaz Más
faa3a607ab
CMake: Remove FREEBSD variable + Remove commented code
...
- Plus: EXV_LOCALEDIR is now defined only when needed.
7 years ago
Luis Díaz Más
5fc905a799
CMake: remove variable EXIV2_SRC
7 years ago
Luis Díaz Más
fa5f057f8c
CMake: Remove useless source_group commands
7 years ago
Luis Díaz Más
b208bcef7d
CMake: CURL does not need to be propagated
7 years ago
Luis Díaz Más
37538399d6
CMake: Modernize src/CMakeLists.txt by using target_sources.
7 years ago
Luis Díaz Más
9980107586
Only include zlib directory when building the exiv2lib
7 years ago
Luis Diaz Mas
e397f8f053
Fix #533 - Apply patch proposed by Dominique Nerriec
7 years ago
Luis Diaz Mas
83bb4aa80a
code formatting
7 years ago
Luis Díaz Más
38b60a3e8e
CMake: Simplify Intl finding
7 years ago
Luis Díaz Más
4ffc577e4e
CMake: remove useless directory inclusions for exiv2
...
Note that ${CMAKE_SOURCE_DIR}/include is already passed to exiv2
through the exiv2lib target.
7 years ago
Luis Díaz Más
185bcaca05
Link exiv2 app againts libintl
7 years ago
Luis Díaz Más
aae84e4643
Add missing inclusions of cstdio and cstdarg
7 years ago
Luis Díaz Más
44a01863be
Include unistd.h only where it is needed
7 years ago
Luis Díaz Más
38ed6de05d
MSVC: Move compile definitions from config.h to CMake.
...
+ Also remove inclusion of <Windows.h> from config.h
7 years ago
Luis Díaz Más
8bf9ca8e6d
MSVC: Delete deprecated stuff related to MSVC < 2008
7 years ago
Luis Díaz Más
d1c2e2f64f
bindtextdomain point to relative path to bin directory
7 years ago
Luis Díaz Más
7485bb54d7
Create function getProcessPath and add unit test for it
...
Debugging: Relative and Absolute path alternatives
7 years ago
Luis Díaz Más
e20329b8e0
Remove EXV_HAVE_DLL and disable C4251 always on msvc.
7 years ago
Luis Díaz Más
417ad89e4b
Pass argument by const reference
7 years ago
Luis Díaz Más
2203dce828
Fix compilation in clang
7 years ago
Luis Díaz Más
59ba209fe8
Move BlockMap to .cpp file (Remove it from API)
...
- Also make some BlockMap methods const
7 years ago
Luis Díaz Más
fab770887b
Initialize member variables not initialized in the constructor
7 years ago
Luis Díaz Más
20a29cc9c4
Initialize variable in constructor initialization list
7 years ago
Luis Díaz Más
58a96d5908
Fix - Exception thrown in function that was declared not to throw
7 years ago
Luis Díaz Más
2d1e1fe6ef
Reduce the scope of variables
7 years ago
Luis Díaz Más
dc7eb5008b
Add explicit to constructors with 1 argument
7 years ago
Luis Díaz Más
1620198568
Update fujiColor tag with descriptions for new Fujifilm monochrome modes
7 years ago
Robin Mills
ac951622f4
Update DateTimeOriginal in NEF images
7 years ago
Luis Díaz Más
ae49250942
Check in Image::printIFDStructure if seek and reads are OK
7 years ago
Luis Díaz Más
59013f2e2f
Formatting code
7 years ago
Luis Diaz Mas
b7c71f3ad0
PSD: enforce Length of image resource section < file size
7 years ago
Luis Diaz Mas
6896693251
PSD: Use Safe::add for preventing overflows in PSD files
7 years ago
Luis Díaz Más
933ce589a6
Fix infinite loop in getopt.cpp
...
Note that the getopt code was looping forever when one of the argument
options was incorrect. Example:
./exiv2 -A 20:00:00 -Y 2018 -O 11 -D 01 ad myImage.tiff
7 years ago
Robin Mills
b608ad9fdd
Restore exiv2.pc in the mix ( #497 )
7 years ago
Luis Díaz Más
8b877d6ed6
SOVERSION is VERSION_MINOR as in 0.26
7 years ago
Luis Díaz Más
c34c545e31
Change back the library name to exiv2. Generate PDBs in CURRENT_BINARY_DIR.
...
We need to specify where to generate the PDB so that it does not clash with the PDB file generated
for the exiv2 application.
7 years ago
Luis Díaz Más
8d5d453c13
Use the MSYS CMake variable to determine when to use localtime.c
7 years ago
Luis Díaz Más
bc1c17fd78
Add back localtime.c implementation for MinGW
7 years ago
Robin Mills
a099f2440a
Man page update to describe the configuration file.
7 years ago
Robin Mills
42084f2563
Add support for MinGW/msys2 in 32 bits + Updates in buildserver
7 years ago
Robin Mills
e347b41279
Modified Exiv2::Internal::stringFormat() to use larger initial guess for 'need' to fix test/.icc-test.sh on MinGW.
7 years ago
Robin Mills
5f6ef65695
Update PROJECT_VERSION & add install() commands for CPack
...
- Version updated to 0.27.0.1.
- Release notes for MacOS-X Package, Linux, CYGWIN, win64 and msvc
- Redmine Release Notes Updated.
7 years ago
Luis Díaz Más
3976dbc0e7
CMake: Do not rename library outputs (dlls, pdbs, etc). Fixes a debugging issue with MSVC
7 years ago
Robin Mills
9c516116c8
Fix #401 by fixing iteration over exif data tags
7 years ago
Robin Mills
b3d077dcae
Fix #460 by adding more checks in CiffDirectory::readDirectory
7 years ago
Luis Díaz Más
670fb73dd5
Fix #457
7 years ago
Dan Čermák
962962a8e9
Port Iptc::printStructure & getUshort to slices API
...
This fixes #211 , #210 , #209
7 years ago
Dan Čermák
fec6535ae8
[binaryToString] Reimplement using Slices
...
- reimplement binaryToString:
- it now accepts a Slice and nothing else
- it does not return a std::string but instead a proxy object that implements
operator<< (this should be more efficient, as we do not need to touch the
heap in most cases)
- addapt unit tests
- replace all occurences with the new API
7 years ago
Dan Čermák
a48d0347b7
[binaryToString] Fixed overread when passing start > 0
...
binaryToString(DataBuf&) only calls the C-array version. Unfortunately, its
safety check is flawed, as it only works when start is 0 (probably due to its
conterintuitive interface).
binaryToString(byte*) formats the range (start,start+size) => we have to trimm
size if size + start is larger than the DataBuf's size_
7 years ago
Dan Čermák
bfd84ddf5a
[binaryToString] Improved ambiguous documentation
7 years ago
Dan Čermák
7a7ae7a1df
[image_int] Move internal functions into separate translation unit
7 years ago
Dan Čermák
98bca06592
Add Slices: views of STL containers & C-arrays and add unit tests
...
This commit adds a very simple implementation of std::span but with
mandatory range checks and only the most essential functionality.
7 years ago
Luis Díaz Más
97379dec1d
Add braces around try-catch block. Apply clang-format to the function.
7 years ago
Luis Díaz Más
4216dcd0c2
Fix cppcheck issues: knownConditionTrueFalse
7 years ago
Luis Díaz Más
ab35759de8
Fix cppcheck issues: unreachableCode
7 years ago
Luis Díaz Más
54ad1bc91a
Fix cppcheck issues: duplicateBreak
7 years ago
Luis Díaz Más
b118192f94
Fix cppcheck issues: redundantAssignment
7 years ago
Luis Díaz Más
c43d998457
Fix cppcheck issues: passedByValue
7 years ago
Luis Díaz Más
989acd18c7
Fix cppcheck issues: uninitMemberVar & uninitVar
7 years ago
Luis Díaz Más
19e740b447
Restore API functions remove in #450
7 years ago
Roberto C. Sánchez
c03f73268f
Prevent SIGABRT on excessive subBox length in jp2image.cpp
...
This fixes CVE-2018-9145
7 years ago
Borchers, Henry Samuel
11e66c6c9e
BUILD_INTERFACE for include directories use PROJECT_SOURCE_DIR to allow for being built as a CMake subproject
7 years ago
Dan Čermák
916c535d94
clang-format floatToRationalCast
7 years ago
Dan Čermák
6fd1c5b4bf
[types] Fix check for finite numbers on Linux
...
On Linux we were merely checking whether f is finite, but that does
not cover the case f=NaN.
=> use isfinite instead which checks whether f != inf && f != NaN
7 years ago
Luis Díaz Más
18690f4c54
Provide default and copy constructor for AnyError
7 years ago
Luis Díaz Más
6e4404da81
Move implementation details from tags.cpp to tags_int.cpp
7 years ago
Luis Díaz Más
b9f913d5af
Move implementation to .cpp files. Fix more issues related to visibility settings
7 years ago
Luis Díaz Más
e3f975137c
Use STATIC_DEFINE to solve issues with OBJECT library
7 years ago
Luis Díaz Más
6ba4081f95
Use CMake-GenerateExportHeader to generate a macro to export symbols
...
- Delete the hardcoded macros in config.h taking care of that.
7 years ago
Luis Díaz Más
812762cf5a
Remove usage of CPLUSPLUS11
7 years ago
Luis Díaz Más
ab6aac054a
Remove deprecated code from version source files
7 years ago
Luis Díaz Más
1871ce5acd
Remove 'version.hpp' inclusion from places where it is not needed
...
By removing the inclusion from types.hpp we avoid lots of recompilation
of source files.
7 years ago
Luis Díaz Más
e5bcabd026
Do not print hexadecimal version value when running exiv2 --version
7 years ago
Dan Čermák
67ec90bdab
Fix switch value in BigTiffImage::readData
...
This function extracts a 2, 4 or 8 byte integer from the image and
swaps it according to the current setting. However, it was implicitly
assuming, that it reads the same amount from the image is is
requested.
If that is not the case, e.g. if 8 bytes are requested but
only 4 are read
=> result is created via byteSwap8() which reads 8 bytes
!but 4 of those are uninitialized!
Using the actually read size fixes this problem.
7 years ago
Dan Čermák
ecf955812d
Replace reachable assertions with enforce in BigTiffImage::readData
7 years ago
Dan Čermák
b3199a0720
Fix division by zero in BigTiffImage::printIFD
...
This fixes #262
7 years ago
Robin Mills
afb98cbc6e
Allocate correct amount of memory for the ICC profile
7 years ago
Robin Mills
8ff26931e3
Do not use Image::printStructure() when reading images as this causes security issues.
7 years ago
Luis Díaz Más
1bdbb86b0c
Fix warning about implicit conversion to bool
7 years ago
Luis Díaz Más
dba48ac3d9
Fix warning on VS2008
7 years ago
Luis Díaz Más
603692a1d8
Copyright to Exiv2 authors
7 years ago
Luis Díaz Más
c4cc019dff
Hide -Wunused-variable issues by using the UNUSED() macro
7 years ago
Luis Díaz Más
94375034e6
Fix -Wsign-compare issues
7 years ago
Luis Díaz Más
18ded9ccf3
Use static version of libcurl.
...
Note that this will simplify the packaging/deployment
7 years ago
Luis Díaz Más
0bfa0168df
Cleanup some of the PACKAGE_XXX variables and rely in the ones given by the project() command
7 years ago
Luis Díaz Más
980f2e9462
Use isnan(f) as an alternative to isinf() on __APPLE__
7 years ago
Robin Mills
6d1c318fc6
Fixes in PngChunk::readRawProfile
7 years ago
Luis Díaz Más
f5b40f3e82
Fix more issues in PngChunk::readRawProfile
7 years ago
Luis Díaz Más
847da051c0
Fix bug in PngChunk::readRawProfile
...
- Now it takes into account text.size_ when searching for a newline
char.
7 years ago
Luis Díaz Más
6b77e9f6c8
Do not use std::vector::data() which is not part of c++98
7 years ago
Luis Díaz Más
2ae0cffe18
isinf for Visual Studio versions previous to 2013
7 years ago
Luis Díaz Más
4161099b91
Fix warnings reported by MSVC
7 years ago
Luis Díaz Más
da24df0ba0
snprintf versions for VS versions previous to 2015
7 years ago
Luis Diaz Mas
67e448669e
Use -Wno-format-overflow when compiling value.cpp to skip false positive warning
7 years ago
Luis Díaz Más
597b17fff5
Simplify timegm.h and make it usable with MINGW
7 years ago
Dan Čermák
1e23238fa4
Fix memory leak in Params::getopt()
7 years ago
clanmills
3c42fdddeb
Fix include <exiv2/exiv2.hpp> to include exiv2/config.h (and consequential changes)
...
Fix cltest.cpp and version.cpp to report MSVC 2017 in which _MSC_VER == 1910
7 years ago
Robin Mills
74bc0e0535
Changes for cross-platform getopt
7 years ago
Hombre
a226d6a650
Fixing typo in cmakefiles and removing REGEX dependencie for Cygwin
7 years ago
Hombre
28da26f174
Adding MINGW32 toolchain support
7 years ago
Dan Čermák
7d9ed33bde
Initialize DataBuf with 0s => fix valgrind error
7 years ago
Dan Čermák
9f1a5a1ebb
[futils] Change signature of getEnv to take an int
...
While taking an EnVar as the parameter is more clear it has the
disadvantage, that passing anything outside of the range of the
enumeration is undefined behavior. The compiler could then optimize
the range check in getEnv away (perfectly legal due to UB), leading
to buffer overreads.
7 years ago
Dan Čermák
11df43be78
[types] Apply Safe::abs() in floatToRationalCast & gcd
...
Also check for infinity in floatToRationalCast as depending on the
compiler special values of floats are converted to either
LONGMAX/LONGMIN or +/-inf
7 years ago
Dan Čermák
2dacb19933
[safe_op] Add Safe::abs(), calculates absoulte value without UB
...
Add a drop-in replacement for std::abs which never produces
negative values and thereby never invokes undefined behavior.
7 years ago
Luis Diaz Mas
8b47a8efc1
Include timegh.h in file which needs it
7 years ago
Luis Diaz Mas
a9c9451588
Remove localtime.c and any other trick to handle timegm
7 years ago
Luis Diaz Mas
eb306fdbae
Substitute malloc/free with new/delete
7 years ago
Luis Diaz Mas
eefee8125b
to_hex and from_hex removed from API
7 years ago
Luis Diaz Mas
41499b8ecd
Use snprintf instead of sprintf in TimeValue::copy
...
- Replaced assert by enforce
7 years ago
Luis Diaz Mas
7d8edbe781
Remove more dead code
7 years ago
Luis Diaz Mas
00502eabdd
Move mrwthumb to samples
7 years ago
Luis Diaz Mas
e9a6597a48
Move xmpdump to samples
7 years ago
Luis Diaz Mas
ac51fda7b5
Move crwparse to samples
7 years ago
Luis Diaz Mas
32b618b1c7
Move crwedit from exiv2lib to samples
7 years ago
Luis Diaz Mas
f9b2784055
Remove utiltest.cpp that is not compiled
7 years ago
Luis Diaz Mas
00f86a8df4
Cleanup unused variable warnings
7 years ago
Luis Diaz Mas
6e244f31d3
Cleanup fallthrough warning + clang-format parseCommonTargets function
7 years ago
Dan Čermák
35b3e596ed
Add overflow & overread checks to PngChunk::parseTXTChunk()
...
This function was creating a lot of new pointers and strings without
properly checking the array bounds. This commit adds several calls
to enforce(), making sure that the pointers stay within bounds.
Strings are now created using the helper function
string_from_unterminated() to prevent overreads in the constructor of
std::string.
This fixes #400
7 years ago
Dan Čermák
6da77e2c64
Add documentation for parameters of string_from_unterminated
7 years ago
Dan Čermák
b127354429
Simplify string_from_unterminated by using strnlen()
7 years ago
clanmills
ce516eddef
Issue-374
7 years ago
Dan Čermák
b12a868454
Add EXV_WARN_UNUSED_RESULT macro & add it to DataBuf::release()
...
EXV_WARN_UNUSED_RESULT is a conditional macro that expands to either
__attribute__((warn_unused_result)) on gcc & clang or to _Check_return
for MSVC
=> Compiler warns if the return value is ignored
7 years ago
Dan Čermák
1ab921cb83
Add two padding bytes to exifLongHeader to prevent overreads
...
in the following call:
getHeaderOffset (payload.pData_, payload.size_, (byte*)&exifLongHeader, 6);
getHeaderOffset would read 6 bytes from exifLongHeader, reading beyond the
bounds of the array => add 2 padding bytes to prevent overreads
7 years ago
Dan Čermák
dbf90b976f
Fix overread in memcmp in PngImage::doWriteMetadata()
...
memcmp() compares the read data from key with the provided string, but when
key.pData_ is shorter than the provided length, then memcmp can read beyond the
bounds of key.pData_
=> add custom compare function, which ensures that we never read more than
key.size_
7 years ago
Dan Čermák
8d5a3c7dd9
Remove buffer overread in tExtToDataBuf
...
The pointer p is advanced in the while loop to step over three '\n'.
However, its length is never reduced accordingly. => the length check in the
following for loop is invalid, as it permits overreading by the number of
characters that p was advanced by.
7 years ago
Dan Čermák
67dc3e691f
[IptcData::printStructure] clang-format function
7 years ago
Dan Čermák
b2c3b61abc
[IptcData::printStructure] Remove buffer overrun
...
The loop condition will perform a range check correctly, but it will always
dereference bytes[i], even if i is too large and fails the second check.
=> move the bytes[i] == 0x1c check into a if, after the range check was
successfull
7 years ago
Dan Čermák
39399ac5e8
Remove memory leak in SshIo::SshImpl::getDataByRange
...
The buffer array is not deleted, when an exception is thrown
(happens for nBytes< 0).
=> use std::vector<char> instead
7 years ago
Dan Čermák
607b19111c
[DataBuf] Replace wrong usage of release() with free()
7 years ago
Dan Čermák
1b74db8f51
[types] Add DataBuf::free()
...
DataBuf::release() easily cause memory leaks, when the return value is
ignored. free() provides the desired behavior, when the internal data should
just be deleted and not used further.
7 years ago
Dan Čermák
81b6d36c90
[webp] Enforce minimum read size in decodeChunks
...
The size parameter is only checked for upper bounds, but not for lower.
If it is too small, then created dataBuf will be too small and overflow in one
of the subsequent memcpy() calls.
This fixes #378 / CVE-2018-14046
7 years ago
Luis Díaz Más
6a203c70c0
Include missing unused.h header in convert.cpp
7 years ago
Dan Čermák
b761c6d056
Remove useless casts in preview.cpp
7 years ago
Dan Čermák
fe70939f54
Fix addition overflows in range checks in LoaderTiff::getData
...
Several checks for extracted values performed no overflow checks on the
addition. They can be tricked into passing, albeit the individual summands are
too large.
=> use Safe::add() which now aborts when an overflow occurs
This fixes #366
7 years ago
Dan Čermák
f4e8ed2fd4
Catch all exceptions not caught in exiv2 cli-tool
...
It effectively looks the same as before, only now we don't call abort() but
instead clean up everything gracefully.
7 years ago
Dan Čermák
937a1a2bd0
Add offset_ and size_ safely in LoaderExifJpeg::LoaderExifJpeg
...
offset_ can become arbitrarily large and overflows once its added to size_,
this causes all kinds of problems further in the code when offset_ is used
again.
=> Use Safe::add() to catch potential overflows
This fixes #365 .
7 years ago
Luis Diaz Mas
abf6e8ec27
Remove code related with autotools
7 years ago
tbeu
6b1615840f
Remove redundant check
...
V547 Expression 'bPrint' is always true. rafimage.cpp 112
V547 Expression 'bPrint' is always true. rafimage.cpp 125
V547 Expression 'bPrint' is always true. rafimage.cpp 136
V547 Expression 'bPrint' is always true. rafimage.cpp 147
V547 Expression 'bPrint' is always true. rafimage.cpp 158
V547 Expression 'bPrint' is always true. rafimage.cpp 169
V547 Expression 'bPrint' is always true. rafimage.cpp 190
V547 Expression 'bPrint' is always true. rafimage.cpp 213
V547 Expression 'bPrint' is always true. rafimage.cpp 236
V547 Expression 'bPrint' is always true. rafimage.cpp 252
V547 Expression 'bPrint' is always true. rafimage.cpp 262
V547 Expression 'bPrint' is always true. rafimage.cpp 272
7 years ago
tbeu
eca251865f
Fix check (on comparing unsigned minus signed greater zero)
...
V555 The expression 'object->sizeDataArea_ - buf.size_ > 0' will work as 'object->sizeDataArea_ != buf.size_'. tiffvisitor.cpp 911
7 years ago
tbeu
bb9034e029
Do not implicitly cast enum to Boolean
...
V768 The expression 'fileProtocol(path)' is of enum type. It is odd that it is used as an expression of a Boolean-type. futils.cpp 288
7 years ago
tbeu
12d0da619b
Use clear to reset string
...
V815 Decreased performance. Consider replacing the expression 'token = ""' with 'token.clear()'. http.cpp 193
7 years ago
tbeu
9569ef2fda
Use auxiliary variable
...
V807 Decreased performance. Consider creating a reference to avoid using the 'image_.exifData()' expression repeatedly. preview.cpp 530
7 years ago