Commit Graph

227 Commits

Author SHA1 Message Date
Luis Díaz Más
813566526c
Revisiting cmake code for generating coverage reports (#2047)
* cmake: better usage of gcovr for coverage reports

* Add test for FileIo::setPath

* Remove useless seek() overload

* Add missing override specifiers

* ignore .vs folder

* Small refactors in BasicIo implementations

* Remove duplicated doxygen doc

* Refactor & add tests for MemIO

* Fix compilation warnings on windows
2022-01-06 12:52:01 +01:00
Kevin Backhouse
44542a9f94
Add readOrThrow and seekOrThrow to BasicIo. 2021-10-21 10:18:21 +01:00
Kevin Backhouse
9ff72e5ca5
Make offset=0 the default parameter. 2021-08-30 12:41:08 +01:00
Kevin Backhouse
c9d0cf3643
Make fields of DataBuf private. 2021-08-29 15:43:10 +01:00
Kevin Backhouse
64fe77673f
Decouple EXIV2_BUILD_FUZZ_TESTS from EXIV2_TEAM_USE_SANITIZERS. 2021-08-11 15:11:01 +01:00
Kevin Backhouse
944e68fa15
Merge pull request #1787 from Exiv2/mergify/bp/main/pr-1766
Extra checking to prevent loop counter from wrapping around (backport #1766)
2021-07-25 19:53:52 +01:00
Kevin Backhouse
69d82ffe01
Defensive coding changes to avoid integer overflow in loop conditions. 2021-07-18 15:02:35 +01:00
Kevin Backhouse
dc2c77ce81
Safer std::vector indexing. 2021-07-18 14:40:45 +01:00
Luis Díaz Más
f30022d73d
Fix issues detected with PVS-Studio + other little improvements (#1689)
* avoid re-declaration of constant variables

* Replace pthreads critical section with std::mutex

* ci - better naming

* cmake - increase minimum version to 3.11. Use project DESCRIPTION

* fix - do not treat string::find() return type as bool

* remove conditions that were always true

* remove condition that were always false

* Remove EXV_HAVE_GMTIME_R which is not used anymore

* pixelWidth_ was inherited from Exiv2::Image

The width & height variables in the TiffImage class need to be mutable
to be able to change their values on the getters pixelHeight() and
pixelWidth() ... Do not ask me why ...

* Remove superfluous if

* pvs:V766 item with identical key added already

* pvs:V730 not all members were initialized (time)

* pvs:V730 not all members are initialized

* pvs:v668 no point in testing pointer against null after new

* pvs:V1048 variable assigned the same value

* replace c-style dynamic vector with std one

* pvs:547 fakeData is always true

* Remove useless constructor in derived class

* pvs:V690 modern way to disable copy-ctor

* Replace malloc/free with new/delete. No need to check for null

* pvs:V1028 cast operands and not result

* Remove custom MIN/MAX functions

* pvs:V595 pointer used before verified against null

* pvs: index used before being checked

* pvs:V1028 possible overflow. Cast operands

* pvs:v575 potential null pointer passed to other functions

* pvs:V547 deal with always true/false expressions

* pvs:V560 part of conditional expressions always false or true

* pvs:V701 possible break in realloc -> move to std::vector

* Make some classes 'final'

* Replace sprintf with std::to_string()

* fix compilation on windows
2021-06-01 12:39:10 +02:00
Rosen Penev
2c57f214c5 clang-tidy: use nullptr
Found with modernize-use-nullptr

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-26 08:31:45 +02:00
Rosen Penev
743da1a564 clang-tidy: use C++ casting
Found with google-readability-casting

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-20 07:29:02 +02:00
Rosen Penev
8dbc699858 clang-tidy: add missing explicit
Found with google-explicit-constructor

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-19 16:48:44 +02:00
Rosen Penev
cdbee3c26c clang-tidy: init in member initializer
Found with cppcoreguidelines-prefer-member-initializer

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-19 14:11:42 +02:00
Rosen Penev
8564d0b394 clang-tidy: pass by value
Found with modernize-pass-by-value

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-18 14:30:08 +02:00
Rosen Penev
b8712188bb clang-tidy: use auto
Found with modernize-use-auto

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-17 21:52:03 +02:00
Rosen Penev
fdf9d3799c clang-tidy: don't use else after return
Found with llvm-else-after-return

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-15 17:32:56 +02:00
Rosen Penev
674fdcd38b clang-tidy: fix declartation names
Found with readability-inconsistent-declaration-parameter-name

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-12 09:26:51 +02:00
Rosen Penev
2e73aa9dc0 default con/destructors in headers
Helps to optimize trivially destructable stuff.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-12 09:10:36 +02:00
Rosen Penev
5d716c7df4 clang-tidy: empty() conversions
Found with readability-container-size-empty

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-12 07:12:15 +02:00
Rosen Penev
143a1fbbe2 clang-tidy: don't use string compare
Found with readability-string-compare

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-12 07:12:15 +02:00
Rosen Penev
8337462032 clang-tidy: use empty() instead of comparing size
Found with readability-container-size-empty

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-11 22:02:47 +02:00
Rosen Penev
af7b2430c5 clang-tidy: use override
Found with modernize-use-override

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-11 17:39:59 +02:00
Rosen Penev
15f0a600ed clang-tidy: use default member init
Found with modernize-use-default-member-init

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-11 15:01:26 +02:00
Rosen Penev
bd6a996181 clang-tidy: use using
Found with modernize-use-using

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-09 17:42:51 +02:00
Rosen Penev
b3040da54c clang-tidy: don't check for NULL with delete
Found with readability-delete-null-pointer

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-09 17:42:26 +02:00
Rosen Penev
1dc1186760 clang-tidy: simplify boolean expressions
Found with readability-simplify-boolean-expr

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-09 17:30:46 +02:00
Rosen Penev
8128716287 clang-tidy: use = default
Found with modernize-use-equals-default

Ran through git clang-format

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-09 15:18:50 +02:00
Luis Díaz Más
9de534976f msvc: fix compiler warning on x86 2021-05-03 06:40:02 +02:00
Luis Díaz Más
90dde02359 Win - Disable UNICODE which is failing at the moment 2021-05-03 06:40:02 +02:00
Rosen Penev
84220855b2 clang-tidy: use = delete
Found with modernize-use-equals-delete

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-03 06:34:47 +02:00
Luis Díaz Más
75bf666d3b Remove typedef to Dictionary::const_iterator 2021-04-19 10:43:46 +02:00
Luis Díaz Más
94b87a8dec Remove deprecated SSH support 2021-04-18 09:44:51 +02:00
Robin Mills
d632988bbd Massive code prolog cleanup. 2021-03-17 13:34:21 +00:00
clanmills
37cc2db72d fix 1307 ASAN issues with RemoteIo 2020-09-17 17:57:06 +01:00
Robin Mills
7bf40a2408 fix_1211_c++11_0.27. I'll explain this in the PR. 2020-05-28 14:16:08 +01:00
clanmills
5b4743301e The smart robot at codeCover/lgtm spotted typos in the code! Robot's almost as smart as Dan! 2020-05-15 14:42:35 +01:00
clanmills
c920f2ac44 CurlIo/http object to throw kerFileOpenFailed and not kerTiffDirectoryTooLarge 2020-05-15 13:06:38 +01:00
clanmills
f768fc0a42 RemoteIo/http object to throw kerFileOpenFailed and not kerTiffDirectoryTooLarge 2020-05-15 11:05:03 +01:00
clanmills
63a13e8620 Adding option -DEXIV2_BUILD_USE_C++11 2020-05-02 12:21:21 +01:00
Luis Diaz Mas
235087af4e Do not call tell() in File::eof() - Fix tests & performance 2020-04-24 07:42:23 +02:00
clanmills
7658d8aefd fix_macOS_0.27 2020-03-28 08:08:28 +00:00
Robin Mills
4852bd2ab2 fix_910_remote_io_block+1 2019-10-08 14:42:41 +02:00
Kevin Backhouse
edb4bf78ca Add bounds check to MemIo::seek(). (#944)
- Regression test for missing bounds check in MemIo::seek()
- Add bounds check to MemIo::seek(), this fixes CVE-2019-13504

(cherry picked from commit bd0afe0390439b2c424d881c8c6eb0c5624e31d9)

Additional fixes for 0.27:
- Add fix for the linux variant of MemIo::seek
- Change type of variable from unsigned to signed
2019-07-28 12:43:06 +02:00
Luis Díaz Más
113136e134 Replace DEBUG with EXIV2_DEBUG_MESSAGES
Fixes #926
2019-07-12 11:14:35 +02:00
clanmills
ab0b97c729 fix895-ICCProfile-FalseWarning 2019-06-06 12:33:09 +01:00
Luis Diaz Mas
6f8d8e3da6 cleanup header inclusions in API 2019-01-11 15:55:25 +01:00
Luis Díaz Más
59ba209fe8 Move BlockMap to .cpp file (Remove it from API)
- Also make some BlockMap methods const
2018-11-07 23:17:26 +01:00
Luis Díaz Más
59013f2e2f Formatting code 2018-11-06 14:40:36 +01:00
Luis Díaz Más
603692a1d8 Copyright to Exiv2 authors 2018-09-12 19:22:31 +02:00
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
2018-07-28 23:50:33 +02:00
Dan Čermák
bc58752d18 Remove useless casts
This commit removes only casts where type A is cast to the exactly same
type (and not to a platform dependent typedefs)
2018-05-16 10:15:53 +02:00
Dan Čermák
fc60d97a29 Prevent passing of null-pointers to libc functions 2018-04-25 00:13:41 +02:00
Dan Čermák
2bf89f4854 Store pointers to Impl classes in auto_ptr
Pimpl class Impl is stored in raw pointers which are allocated on the heap in
the constructor. However, the constructor can throw an exception resulting in a
memory leak as the destructor is **not** invoked.
=> A smart pointer is however properly deallocated.
2018-04-25 00:13:26 +02:00
Dan Čermák
efe2ccdcb6 Replaced all hardcoded error codes with ker... constants 2018-02-18 09:28:57 +01:00
Robin Mills
df4113b765 changes to MemIo::reserve() for #200 (#213)
* changes to MemIo::reserve() for #200

* Changes following review by Dan (thanks, Dan).
2018-01-26 09:19:03 +01:00
Luis Díaz Más
bfe057ca20 Auto-formatting done by the IDE while touching code in the previous commits 2017-12-06 17:29:05 +01:00
Luis Díaz Más
8b049922d7 Change exiv2::urlencode signature to return std::string
The goal of this change is to remove the responsibility from the client code to
free the memory of the returned string.
2017-12-06 17:29:05 +01:00
tbeu
5b5987a596 Remove obsolete EXIV2_RCSID 2017-11-19 11:17:12 +01:00
tbeu
5df8b01b77 Remove obsolete svn revision 2017-11-19 11:17:11 +01:00
Luis Díaz Más
8ad49f6d73 Robin changes in sync with master changes 2017-09-28 19:42:57 +02:00
clanmills
6e3855aed7 Fix https://github.com/Exiv2/exiv2/issues/55 2017-09-27 09:20:13 +01:00
clanmills
d366943297 Refactoring EXV_USE_CURL and EXV_USE_SSH 2017-09-13 16:54:10 +01:00
Robin Mills
82dbe6199d https://github.com/Exiv2/exiv2/issues/11 Closed. Coincidentally Raphael reported issues with Visual Studio 2015 Community Edition. Issue 11 and Raphael's issues should now be resolved. 2017-06-29 22:13:26 +01:00
Robin Mills
559ace375b #1291 Reverting change in r4763 relating to windows.h as they break the Cygwin build. Retain changes in exiv2/exiv2.hpp and exv_msvc.h 2017-04-23 19:29:19 +00:00
Robin Mills
f36cccefa2 #1291 include header simplification 2017-04-23 17:31:57 +00:00
Robin Mills
67859f4f4e #1175 I'm going to accept the recommendation to change BasicIo::size() to return size_t. This passes the test suite. The only "ripple" outside of basicio is to iotest.cpp. This change enables several casts to be removed. 2017-04-19 17:03:54 +00:00
Robin Mills
7da3ad2e41 #1175. Thanks to LaserSoft for reporting this and providing a patch. 2017-04-19 15:36:00 +00:00
Robin Mills
192a2a83cf #1279 Cleaned up doxygen warnings for doc and website. 2017-03-16 18:13:12 +00:00
Robin Mills
6d5c2c3256 Getting ready to release v0.26 2017-03-08 20:42:28 +00:00
Robin Mills
2ebacb6b0b #1272 Use in-memory temporary files. 2017-03-05 17:42:12 +00:00
Robin Mills
9f06ff2971 #1272 Submitting modified version of Ben's patch. 2017-02-15 20:53:58 +00:00
Robin Mills
b9f584fbbf #1430 Correcting MSVC build breaker in r4639 2016-10-18 10:11:39 +00:00
Robin Mills
a057af1616 #1244. Removing experimental APIs introduced by r4637. I submitted those APIs just to retain the code somewhere. I have no plan to release such as API. 2016-10-17 16:32:58 +00:00
Robin Mills
f5956d5db2 #1230 Fixes to read tiff with web-ready. Includes the BasicIo expiremental API readUnmarked() and markRead() which I will remove later. 2016-10-17 15:48:42 +00:00
Robin Mills
2f86b6bbc0 #1244 Fix submitted. 2016-10-15 09:04:06 +00:00
Robin Mills
957f71f6a6 #1230 Fix MinGW stdin-test breaker 2016-10-08 19:33:46 +00:00
Robin Mills
c10bc003a7 #1023 Fix getDataByRange CURLOPT_SSL_VERIFYHOST. Fix http-test.sh (and associated test/data/http-test.out). 2016-09-29 15:30:55 +00:00
Robin Mills
c78a76c45c #1109 MinGW/32. Correction to r4538 for all versions of msvc. 2016-09-22 22:46:44 +00:00
Robin Mills
f44f706478 MinGW changes following discussion about building with Qt5.6/MinGW 4.9.2 http://dev.exiv2.org/boards/3/topics/2705 2016-09-07 17:08:27 +00:00
Robin Mills
d7463fd114 #1074 and #1057 Fixing build breakers on Cygwin and msvc MinGW to be further investigaged. add checkSum to test functions 2016-09-07 13:17:47 +00:00
Robin Mills
8afd3f43aa #1198. Fixed issue with http I/O failing a test file. 2016-07-25 00:38:11 +00:00
Robin Mills
04f871cc4c #1152 Fix submitted. Also added new static function FileIo::temporaryPath() which I require for tgt - code and fixed typo in tiffvisitor.cpp 2016-01-11 10:03:48 +00:00
tbeu
e0a408ca6d Replace LoadLibraryA/FreeLibrary by GetModuleHandleA for kernel32.dll (which is loaded by default) 2015-11-11 21:52:05 +00:00
Robin Mills
d88a3f5556 #1132. Fix submitted. 2015-10-29 19:39:11 +00:00
Robin Mills
abd5ecedd4 #1129. Fix submitted. 2015-10-13 21:19:25 +00:00
Andreas Huggel
910f389e50 #1116: Reverted changes to BasicIo::BasicIo() introduced in r3933 2015-10-10 07:10:50 +00:00
Robin Mills
8ff86b6875 #1110. Xcode project moved to contrib/xcode. Interesting errors in samples/Makefile. Replaced gsoc13 Exiv2::dict_t with (identical twin) Exiv2::Dictionary 2015-09-23 20:43:16 +00:00
Robin Mills
6767878fb8 #1116. Fix submitted. 2015-09-08 22:17:45 +00:00
Andreas Huggel
b030a4de7c #1077: Removed msync() calls from MemIo. 2015-08-25 03:13:21 +00:00
Andreas Huggel
533668808d Fixed cross-compiler warnings. 2015-06-21 14:21:21 +00:00
Andreas Huggel
108310bfb4 Prefix published precompiler define as usual. 2015-06-15 15:09:30 +00:00
Andreas Huggel
fd80993ab0 Updated copyright notice. 2015-05-02 11:55:40 +00:00
tbeu
a2edf47056 refs 1038: Fix eof detection in MemIo::getb and avoid crash on truncated jpeg files (Vitaliy Filippov) 2015-04-10 19:47:04 +00:00
tbeu
8f5e5a8c4a refs #922:
* Fix MSVC warning introduced by r3650
 * Change first argument of BasicIo::seek to signed integer type
2015-04-10 18:50:03 +00:00
Robin Mills
e51425046e #1043 #1042 #812. Thank You to Thomas for this "polishing" patch. Thank you to everybody who has worked on this issue. Adding all the comments on the three issues together comes to about 60 items by at least 6 contributors. And it involves platform issues, networking, Linux and Windows APIs. One of the most complex issues to arise in Exiv2. Well done everybody. And we've dealt with this quickly. Only 9 days since Calvin first reported #1042.
I use the term "complex" to mean many threads of technology.  "complex" != "complicated".  "complicated" = "difficult to understand".  We try to avoid "complicated".
2015-03-24 22:25:34 +00:00
Robin Mills
6b20a636b7 #1043 and #1042. Thanks to Thomas for showing that r3627 reintroduced #812. Thanks to Thoralf for suggesting msync MemIo fix. 2015-03-24 00:27:59 +00:00
Robin Mills
7817180351 #1042 and #1043. Don't use a MemIo object for small temporary files. 2015-03-21 16:35:06 +00:00
Robin Mills
41243f8653 #1038. Thank You to Vitaliy for reporting this and providing the patch. 2015-03-09 10:28:08 +00:00
Robin Mills
ccfc4b62fd trunk: webready integration. split preview-test.sh and added eps-preview-test.sh (and fix basicio.cpp and svn_version.sh issues). 2014-12-27 10:05:29 +00:00
Robin Mills
d393b0fa7e trunk: exiv2 v0.25 2014-12-25 13:55:57 +00:00