Commit Graph

5083 Commits

Author SHA1 Message Date
iphydf
7db0c80c93
test: Add DHT and tox_events fuzz tests to the cmake build. 2022-03-29 22:57:23 +00:00
iphydf
f39aac09e6
feat: Allow custom network functions.
The idea here is to have a `Network` object that contains functions for
network operations and an optional userdata object that can manage those
network operations. This allows e.g. a fuzzer to replace the network
functions with no-ops or fuzzer inputs, reducing the need for `#ifdef`s.
2022-03-29 22:03:26 +00:00
iphydf
2e3819c956
chore: Remove valgrind build.
This is very slow, around 20 minutes, which seriously slows down
velocity for little gain. MSAN runs on unit tests and 1 auto test, so
we'll catch increasingly many valgrind-ish bugs that way in one of the
1-5-minute builds.
2022-03-29 12:53:02 +00:00
iphydf
ad90f5bbb8
cleanup: Mark Mono_Time const where possible. 2022-03-28 21:26:34 +00:00
iphydf
d56cb13279
cleanup: Avoid name clash between struct field and function.
`connection_status_callback` is also used as struct field in net_crypto.
2022-03-28 21:12:08 +00:00
Tha14
73b0e0fed7
Add information regarding git submodules, cmp 2022-03-28 22:49:31 +03:00
iphydf
6cc8ef3771
cleanup: Add more null checks in tox_new.
So the rest of the code can assume non-null more.
2022-03-28 14:52:38 +00:00
iphydf
f13029417e
test: Remove save_load_test from autotools build.
It keeps timing out. Not great, but it's covered by other builds.
2022-03-28 00:11:47 +00:00
iphydf
24065cf5a9
chore: Update bootstrap daemon checksum. 2022-03-27 23:30:37 +00:00
zugz (tox)
c38f21f888
fix: Correct calculation of packet sent time 2022-03-27 23:30:36 +00:00
iphydf
e4558a287c
perf: Make time move a lot faster in fuzzing runs. 2022-03-27 22:52:35 +00:00
iphydf
ae369dc2e7
test: Enable more tests for msan. 2022-03-27 22:26:15 +00:00
iphydf
b768c153ae
chore: Add third_party to toxcore-sources docker image.
This is needed so other/docker/coverage/run works.
2022-03-27 22:01:19 +00:00
iphydf
bb7b1e9b3a
cleanup: Make addr_resolve a private function.
This isn't used anywhere except in network_test. That test now checks
behaviour of the function actually used elsewhere in tox code, instead.
2022-03-27 20:10:42 +00:00
iphydf
478ef39b39
test: Add some support functions to make writing fuzzers easier. 2022-03-27 18:43:41 +00:00
iphydf
96ab8918dc
cleanup: Use _Static_assert in gcc/clang.
Hopefully they don't throw warnings at us.
2022-03-27 18:18:33 +00:00
sudden6
bc006beb4e
cleanup: split CMakeLists.txt and add some missing targets 2022-03-27 20:09:10 +02:00
iphydf
ac3e8fea63
test: Improve stability of tox_many_tcp_test.
If the TCP port is in use, try the next TCP port.
2022-03-27 15:10:24 +00:00
iphydf
ee154da4a9
refactor: Use cmp instead of msgpack-c for events packing.
This library is better in every way.
2022-03-26 23:57:15 +00:00
iphydf
6749974470
cleanup: Expose struct Tox to internal code.
To avoid unsafe casts that tokstyle doesn't allow and that can cause
random breakages.
2022-03-26 21:15:31 +00:00
sudden6
48fb45887f
try to save the fuzzed save file again
This should test some additional code paths.
2022-03-26 14:09:04 +01:00
iphydf
1928704065
test: Add fuzzer tests to the bazel build. 2022-03-25 18:48:41 +00:00
iphydf
7dde71c4e9
chore: Use "master" as the branch in toktok-fuzzer.
This is the standard across toktok repos. Exceptions are a pain for
automation and tooling.
2022-03-23 23:03:52 +00:00
iphydf
2dcb946e62
cleanup: Reduce scope of array-typed variables where possible.
Cimple cannot actually find these without also causing false positives,
but I found them with cimple before removing the code causing false
positives again.
2022-03-21 12:02:46 +00:00
iphydf
1fc05ce616
cleanup: Reduce scope of variables as requested by cimple. 2022-03-20 23:24:09 +00:00
jfreegman
26c2bb1061
Merge onion_announce changes from new groupchats fork
These changes will make the DHT compatible with the new groupchat
implementation. Additionally, onion announces now support arbitrary
extra data
2022-03-20 17:33:06 -04:00
iphydf
c3a938e38c
cleanup: Avoid memset on structs.
Most of these were safe (some were not), but even the safe ones can
become unsafe (non-portable) later on when adding pointer or float members.
2022-03-19 12:32:36 +00:00
Robin Linden
00e55b34d6
test: Speed up load_save_test by using fake mono_time 2022-03-19 13:09:18 +01:00
Robin Linden
290b1a7716
test: Improve the stability of the save_load test
We were leaving a self_connection_status callback attached to tox1 while
reloading tox2 and 3, the only other toxes in the network. This lead to
tox1 occasionally going offline, triggering the "Tox went offline"
assert and failing the test.
2022-03-19 13:09:07 +01:00
iphydf
88ae190aca
cleanup: Split the huge TCP client packet handler.
Also enable cppcheck in both C and C++ mode.
2022-03-19 11:06:50 +00:00
iphydf
2b2eb41211
chore: Enable memory sanitizer build.
I don't know if this will actually work, or how many of these "fixes" I
need to get msan to be happy on CI. For me locally, it all works fine.
On CI, for some reason it's not fine even though I run in the exact same
docker image as CI.
2022-03-19 03:11:16 +00:00
iphydf
faccbe3943
test: Speed up toxav_many_test by using fake mono_time. 2022-03-17 18:20:40 +00:00
Robin Linden
a09f34ae65
chore: Update the Appveyor build to VS2019 to work around conan issues
Apparently the libvpx recipe doesn't really work on VS2015 anymore.
2022-03-17 18:48:52 +01:00
iphydf
4916347169
cleanup: Sync doc comments between .h and .c files. 2022-03-15 21:44:22 +00:00
iphydf
28623dcfa9
fix: Eliminate memory leak in toxav.
This happens when shutting down a toxav session when it still has some
packets in its internal queue. It's not a serious leak and happens very
rarely (1 in 300 runs of the toxav_many_test), but it can happen and
long-running tox instances that start and end calls a lot would
eventually discover this.
2022-03-15 17:19:44 +00:00
iphydf
caac17699e
doc: Put all the tox public api into a fake "tox" namespace.
This will help with code generation, FFI generation, and API validation later on.
2022-03-14 15:53:43 +00:00
iphydf
83c9c0bd85
cleanup: Move all the group.h structs into group.c.
Almost nothing used these. The one thing that did only does it to get a
`Mono_Time` object. We should probably get that from elsewhere, but for
now the refactoring is just this simple move.
2022-03-13 17:49:50 +00:00
iphydf
864b4aa01f
chore: Be even more explicit about integer range bounds.
For coverity, which continues to think we're overrunning buffers when
at this point it's easy to prove we're not. Here would be the corrected
coverity finding:

6. Condition packet_length <= 105 /* 1 + 32 * 2 + 24 + 16 */, taking false branch.
7. Condition packet_length > 1024, taking false branch.

Now packet_length must be > 105 and <= 1024.

12. Condition len1 == packet_length - (89 /* 1 + 32 * 2 + 24 */) - 16, taking true branch.

len1 must be > 0 (105 - 89 - 16) and <= 919 (1024 - 89 - 16).

14. decr: Decrementing len1. The value of len1 is now between 0 and 919 (inclusive).

This is where coverity goes wrong: it thinks len1 could be up to 2147483629.

15. buffer access should be OK. Coverity thinks it's not.
2022-03-08 20:46:46 +00:00
iphydf
9df7bf7ccd
chore: Add testing/Dockerfile to the CI build. 2022-03-08 20:31:39 +00:00
iphydf
001aa63401
fix: Allow port range in DHT_bootstrap.c. 2022-03-08 12:16:08 +00:00
iphydf
d15d9fa72d
cleanup: Minor cleanups in TCP_connection.c.
Nothing very noteworthy, I just came across this and made it slightly
more readable.

I'm not making this function `bool` right now because it's used in NGC
and that will break.
2022-03-08 07:53:45 +00:00
iphydf
2f10cb1730
cleanup: Count re-adding an existing bootstrap node as success.
It does nothing in the onion, but we shouldn't be reporting failure for
it. Also added a bit more information to the `tox_bootstrap` logging.
2022-03-07 17:42:16 +00:00
iphydf
9e26185678
cleanup: Disable LAN discovery in TCP-only mode.
It causes warnings in the logs.

Also added the IP/Port to TCP connect logging.
2022-03-07 00:10:49 +00:00
iphydf
0d8b9b6b3d
cleanup: Add assertion for decrypted data length.
Hopefully this will make it clear enough to coverity that we're not
overrunning any buffers.
2022-03-06 18:06:39 +00:00
Robin Linden
0467101381
Release 0.2.17 2022-03-06 01:45:06 +01:00
iphydf
e1e92c1ac1
docs: Clean up doxygen comments to be more doxygen-like. 2022-03-05 22:30:48 +00:00
iphydf
3275bb8fea
cleanup: Add explicit callback setters for MSI callbacks.
Instead of a callback ID and a `switch`.
2022-03-04 10:33:23 +00:00
iphydf
cff9a18e39
cleanup: Split util.c out of the network library.
Also, don't include ccompat.h in header files. Instead, explicitly
include it in .c files.
2022-03-04 10:33:11 +00:00
iphydf
f19524cb21
cleanup: Remove dependency from LAN_discovery onto DHT.
As a side-effect, DHT now always accepts LAN discovery packets, even
when LAN discovery is disabled. When LAN discovery is disabled, those
packets are ignored.
2022-03-04 10:19:05 +00:00
iphydf
0d3703c756
cleanup: Remove redundant () around return expression. 2022-03-04 09:47:24 +00:00