- Separate ENABLE_AFL into ENABLE_FUZZING and HAVE_AFL.
- Add the --disable-unicode flag required in the oss-fuzz container.
- Add checking of support for C++17.
- Make Kea compile with afl++.
- Rotate ports in `getServerPort()` functions under an env var.
- Fix some destruction issues that would result in crashes when fuzzing.
- Add some checks in the UnixControlClient that prevent some crashes when fuzzing.
- Add `isc::util::isSocket()` function.
- Change `isc::util::file::Path` to not append a trailing slash to allow
chained calls of `parentPath()`.
- Add `isc::util::file::TemporaryDirectory` useful when fuzzing.
They were not used and they were not properly expanded in
config.h anyway. They showed up as:
/* libyang version */
#define LIBYANG_VERSION "${LIBYANG_VERSION}"
/* sysrepo version */
#define SYSREPO_VERSION "${SYSREPO_VERSION}"
Solves this error:
In file included from /usr/include/boost/asio.hpp:23,
from conftest.cpp:75:
/usr/include/boost/asio/awaitable.hpp: In constructor 'boost::asio::awaitable<T, Executor>::awaitable(boost::asio::awaitable<T, Executor>&&)':
/usr/include/boost/asio/awaitable.hpp:68:19: error: 'exchange' is not a member of 'std'; did you mean 'std::__atomic_impl::exchange'?
68 | : frame_(std::exchange(other.frame_, nullptr))
| ^~~~~~~~
In file included from /usr/include/c++/12/bits/shared_ptr_atomic.h:33,
from /usr/include/c++/12/memory:78,
from /usr/include/boost/asio/associated_allocator.hpp:19,
from /usr/include/boost/asio.hpp:20:
/usr/include/c++/12/bits/atomic_base.h:976:7: note: 'std::__atomic_impl::exchange' declared here
976 | exchange(_Tp* __ptr, _Val<_Tp> __desired, memory_order __m) noexcept
| ^~~~~~~~