Commit Graph

19311 Commits

Author SHA1 Message Date
Peter Keresztes Schmidt 2bda413698 Crypto: Implement a generic hashing API
Currently MD5 is implemented
2021-05-30 22:53:05 +02:00
Peter Keresztes Schmidt a8b9d15d1b Utils: Add our own ASSERT macro
Using `assert` from `<cassert>` leads to unused variable warnings in release builds.
Define the `ASSERT` macro which compiles to a no-op in release builds but still avoids
the warnings.
2021-05-30 21:41:58 +02:00
Isaac Connor cd36bd9bf5 Merge pull request #3266 from Carbenium/fill-out-of-bounds
Image: Remove std::vector out-of-bounds access when filling polygons
2021-05-30 10:55:22 -04:00
Isaac Connor 1219bd8d1e the filename is incorrect so the tmpfiles.d configuration is not being included 2021-05-30 10:54:59 -04:00
Isaac Connor 28a6a3e41e the filename is incorrect so the tmpfiles.d configuration is not being included 2021-05-30 10:54:23 -04:00
Peter Keresztes Schmidt e34b6500d9 Utils: Add implementations for std::data and std::size
These can be removed once C++17 is supported.
2021-05-29 21:37:38 +02:00
Peter Keresztes Schmidt b8178dbb79 CI: Build possible crypto/jwt backend combinations 2021-05-29 21:37:30 +02:00
Peter Keresztes Schmidt 45654cb514 Build: Make the JWT backend selectable
Introduce the -DZM_JWT_BACKEND CMake option through which the JWT backend can be selected.
Supported values: jwt_cpp (default; in-tree) and libjwt

When libjwt is chosen ZM_CRYPTO_BACKEND is taken into account to select the corresponding flavour of libjwt.
2021-05-29 21:37:30 +02:00
Peter Keresztes Schmidt caadc41bfd Build: Make the crypto backend selectable
Introduce the -DZM_CRYPTO_BACKEND CMake option through which the crypto backend can be selected.
Supported values: openssl (default) and gnutls

This commit makes OpenSSL or GnuTLS a requirement to compile/run ZoneMinder.

Following restriction applies:
  * If libjwt is not found we fall back to jwt-cpp which only supports OpenSSL
2021-05-29 21:37:30 +02:00
Peter Keresztes Schmidt b81689aa3f Remove libgcrypt as dependency
GnuTLS used gcrypt as backend but switched in ~2011 to nettle.
Thus we don't need to/shouldn't depend on it.
2021-05-29 21:37:30 +02:00
Isaac Connor 2e61ee4c95
Merge pull request #3266 from Carbenium/fill-out-of-bounds
Image: Remove std::vector out-of-bounds access when filling polygons
2021-05-29 15:05:19 -04:00
Peter Keresztes Schmidt 339cfd49bc Image: Remove std::vector out-of-bounds access when filling polygons
While iterating through `active_edges` we call `std::next`. If the current
iterator is `.end()` we are accessing out-of-bound memory.
Make sure we always have a valid iterator past `it` in the loop.

Follow-up on 6642ca4515
2021-05-29 19:58:19 +02:00
Peter Keresztes Schmidt e8adf5d331 Build: Enable std::vector ASAN annotation in libstdc++
By defining _GLIBCXX_SANITIZE_VECTOR when ASAN is enabled `std::vector` operations
will be annotated so ASAN can detect invalid accesses.

See https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_macros.html
2021-05-29 19:55:17 +02:00
Isaac Connor cd16f3f8e4 Bump version for 1.36.2 2021-05-28 14:00:36 -04:00
Isaac Connor 09b0353592 Actually close the camera in localcamera::Close 2021-05-28 13:54:20 -04:00
Isaac Connor 855a81b975 Merge branch 'release-1.36' 2021-05-28 12:29:35 -04:00
Isaac Connor 096581b7f1 add getMonitorStatuses function to return string values for status numbers 2021-05-28 12:29:30 -04:00
Isaac Connor a4e4ebe3fd Restore api behaviour. Add zmu output to response 2021-05-28 12:29:02 -04:00
Isaac Connor 8511d814df Restore api behaviour. Add zmu output to response 2021-05-28 12:28:35 -04:00
Isaac Connor 195f9fc403 simplify test for being decoded. timestamping needs to be done as well 2021-05-28 11:38:48 -04:00
Isaac Connor 7417d32fbc Add a 5 second timeout when setting suspending/resuming motion detection.Log errors appropriately 2021-05-28 10:29:44 -04:00
Isaac Connor 829708f8f2 Change SQL to add Controls for ONVIF camera, Foscam 9831W and 8918W to specify columns so that if other columns are present the sql still executes. Fixes #3260 2021-05-28 10:24:13 -04:00
Isaac Connor 16cc69ca2b Change SQL to add Controls for ONVIF camera, Foscam 9831W and 8918W to specify columns so that if other columns are present the sql still executes. Fixes #3260 2021-05-28 10:23:42 -04:00
Isaac Connor c590157431 Fix version reverted 1.36.1 due to merge from release-136 2021-05-27 20:01:11 -04:00
Peter Keresztes Schmidt 8379ab70be Build: Disable Wstringop-truncation in GCC ASAN builds
These two options don't work well together and lead to false positives.

Follow-up on e5cac38521
2021-05-28 00:08:46 +02:00
Isaac Connor 225123dd11 Allow [] characters in url to work with ipv6. Fixes #3261 2021-05-26 18:50:26 -04:00
Isaac Connor 824a6dc15b Merge branch 'release-1.36' 2021-05-25 13:17:26 -04:00
Isaac Connor 3b5de40d05 Merge pull request #3259 from gerazo/master
Updated Hungarian translation
2021-05-25 13:16:35 -04:00
Isaac Connor c7e9144124 Merge pull request #3257 from Carbenium/ffmpeg-stretch
FfmpegCamera/Videostore: Disable hwaccel for ffmpeg found in Debian Stretch
2021-05-25 13:16:12 -04:00
Isaac Connor 8d783d3cd5 Merge pull request #3254 from bestlong/add-lang
web ui add lang (Chinese Traditional)
2021-05-25 13:15:56 -04:00
Isaac Connor 80800785be Fix getting border width on firefox. Need to specify which border. Went a little further and split x and y axis borders in the maxfit2. Fixes #3249 2021-05-25 13:15:04 -04:00
Isaac Connor 799a0ed7ba
Merge pull request #3254 from bestlong/add-lang
web ui add lang (Chinese Traditional)
2021-05-25 13:12:34 -04:00
Isaac Connor 82c7474786
Merge pull request #3257 from Carbenium/ffmpeg-stretch
FfmpegCamera/Videostore: Disable hwaccel for ffmpeg found in Debian Stretch
2021-05-25 13:12:17 -04:00
Isaac Connor a266388898
Merge pull request #3255 from anon8675309/gitlab-ci
Enable gitlab CI to build debian packages
2021-05-25 13:08:58 -04:00
Isaac Connor 6e70eb5963
Merge pull request #3259 from gerazo/master
Updated Hungarian translation
2021-05-25 13:08:00 -04:00
Zoltan Gera 714dd0aa9f Updated Hungarian translation 2021-05-25 18:15:40 +02:00
Isaac Connor cf03bb9548 Merge branch 'release-1.36' 2021-05-25 11:34:11 -04:00
Isaac Connor 9e64b912a8 Add samesite when setting cookie for skin and css 2021-05-25 11:33:28 -04:00
Isaac Connor d59118fc47 Add redirect so that Yes I'd like to donate now goes to the zoneminder /donate website. This used to happen in javascript but got removed when it was turned into a modal. 2021-05-25 11:33:12 -04:00
Peter Keresztes Schmidt e659543d0a Logger: Fix DB log messages not being populated
We need to `resize` the buffer string since `reserve` does not guarantee that the buffer is
actually available.

Follow-up on 298415fff3
2021-05-25 11:29:32 -04:00
Isaac Connor 6a9ed9c457 Use data-onclick instead of data-on-click-this. 2021-05-25 11:22:43 -04:00
Peter Keresztes Schmidt 6b478484bd CI: Add workflow for Debian Bullseye 2021-05-25 07:41:39 +02:00
Peter Keresztes Schmidt d413f3c78f FfmpegCamera/Videostore: Disable hwaccel for ffmpeg found in Debian Stretch
The av_hwdevice_* API is not complete in 3.2. Enable hwaccel from 3.4 onwards.
2021-05-24 23:20:30 +02:00
Peter Keresztes Schmidt 8a8dc48206 CI: Add CI workflow for Debian Stretch 2021-05-24 22:03:43 +02:00
Peter Keresztes Schmidt 9f4e7178d4 CI: Add CI workflow for Debian Buster 2021-05-24 21:53:42 +02:00
Peter Keresztes Schmidt 0392828ef8
Merge pull request #3256 from Carbenium/ci-centos
CI: Run on CentOS 7 and 8
2021-05-24 09:17:47 +02:00
Peter Keresztes Schmidt e232b5d1a7 Build: Disable Wmissing-field-initializers on older GCC versions
GCC 5.1 corrected the behaviour in regard that the C++11 initialisation behaviour is respected.
2021-05-24 01:15:00 +02:00
Peter Keresztes Schmidt 9900fc1273 tests/Font: Avoid lambda capture initialization
Remove the use of this language feature until we raise the requirements to C++14.
2021-05-24 00:55:46 +02:00
Peter Keresztes Schmidt e5cac38521 Comms: Make sure sun_path is NUL-terminated
When using strncpy the NUL-termination can go missing if the string to be copied is longer than the buffer.
Make sure the last character in the buffer is NUL.
If this really happens, the error (non-existing path due to truncation) will be caught during bind-ing.

Fixes the following warning:
/home/peterke/DEV/zoneminder/src/zm_comms.cpp: In member function ‘bool ZM::SockAddrUnix::resolve(const char*, const char*)’:
/home/peterke/DEV/zoneminder/src/zm_comms.cpp:207:10: warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound 108 equals destination size [-Wstringop-truncation]
  207 |   strncpy(mAddrUn.sun_path, path, sizeof(mAddrUn.sun_path));
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-05-24 00:44:15 +02:00
Peter Keresztes Schmidt 93abbdf964 CI: Run on CentOS 7 and 8 2021-05-24 00:20:42 +02:00