Setting this option enables address sanitizer and undefined behavior
sanitizer, when available for the given compiler & platform.
It does not currently check whether the architecture is supported,
as CMake does not offer an easy way how to check it. Since we are
mostly developing for x86 & amd64 this is not a huge problem and it's
also a developer only setting.
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.
In order to achieve this objective the following actions were taken:
- Do not use the Ninja Generator, since it is more difficult to choose
VS toolset to be used.
- Use arch x64 for conan and the CMake Generators (by default)
- Do not create profiles dir manually
- Detect new default conan profile automatically
- Remove clcache from appveyor since it does not integrate well with VS generators
- VS2013 removed from the matrix since some integration tests fail there.
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
This is needed in some tests which are using exiv2json.
It seems that during metadata conversion, the dates are converted from the
original timezone (which seems to be saved in xmp) into the local time zone.
* Port redmine issue 1024
* Port redmine issue 1026
* Port redmine issue 1040
* Port redmine issue 1044
* Port redmine issue 1053
* Port redmine issue 1054 (not finished yet; I found some issues there)
* Port redmine issue 1058
* Port redmine issue 1062
* Port redmine issue 1080
* Port redmine issue 1108
* Port redmine issue 1112
* Port redmine issue 1114
* Port redmine issue 1122
* Port redmine issue 1140
* Port redmine issue 1144
* Port redmine issue 1145
* Port redmine issue 1153
* Port redmine issue 1155
* Port redmine issue 1166
* Port redmine issue 1167
* Port redmine issue 1170
* Replace escaped chars in 1054
* Add brackets in exiv2json::main()
* Link all sample apps against exiv2lib
* Changes in 1054
* test 1054: fix dates depending on Local time
* Do not run make with VERBOSE=1
* Use system_tests.path
* Fix windows issues with quotes
* Use system_tests.path
* Use itertools to simplify test code
* [appveyor] Install clcache with nuget
* [appveyor] Keep clcache in the appveyor jobs
* [appveyor] Print clcache stats after compiling the project
* Use CLCACHE_PATH env variable to find clcache