test


Log

Author Commit Date CI Message
Azat Khuzhin f04d90b1 2023-04-04T22:15:35 Fix building with -Wstack-protector due to VLA and fobid them It is not a thankless task to fix such issues on and on, let's just prohibit this cases, and our build with -Werror on CI will show new issues from now on. Fixes: #1434
Zhipeng Xue fa05966d 2023-03-05T05:12:04 test: fix potential null dereference in https_bind_ssl_bevcb (#1428) Co-authored-by: Azat Khuzhin <a3at.mail@gmail.com>
Azat Khuzhin 1df2a5a6 2023-02-12T17:05:20 test: enable allocator_may_return_null=1 for calloc with ENOMEM test
Azat Khuzhin 207ea62b 2023-02-12T16:46:40 test: handle -v as --verbose for regress
Azat Khuzhin 0ea20582 2023-02-12T21:39:04 test: add del_wait/del_notify tests for windows Test manually, since CI is too slow
Azat Khuzhin 61de8a07 2023-02-12T15:47:16 test: fix leaks in bufferevent_pair_release_lock (#1413)
Azat Khuzhin c257e16f 2023-02-12T08:34:52 test: fix debug locks in case new lock gots old address Refs: #1407
Azat Khuzhin fb900a28 2023-02-12T08:12:20 test: suppress logs from the tests that produce them under normal circumstances
Azat Khuzhin 1201bb85 2023-02-12T07:59:17 test: fix TT_* flags values
Azat Khuzhin 35375101 2023-01-27T08:57:33 Fixes some new warnings under clang-15 - -Wdeprecated-non-prototype /src/le/libevent/strlcpy.c:48:1: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype] event_strlcpy_(dst, src, siz) - -Wstrict-prototypes /src/le/libevent/evthread.c:82:70: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes] struct evthread_condition_callbacks *evthread_get_condition_callbacks() - -Wunused-but-set-variable /src/le/libevent/test/regress_buffer.c:130:6: warning: variable 'n' set but not used [-Wunused-but-set-variable] int n = 0; ^
Daniel Kempenich ebd7e8d7 2023-01-27T08:44:41 Allow evdns_base_new to succeed with no nameservers configured If resolv.conf has no nameservers, evdns_base_new can still succeed with the default of using the name server from localhost matching the man page documentation for resolv.conf.
Daniel Kempenich a7fffb5c 2023-01-17T23:02:56 Replace magic numbers with consts for evdns_base_resolv_conf_parse() errors
Dmitry Antipov 1af745d0 2022-10-25T11:30:34 signal: new signal handling backend based on signalfd Linux-specific signal handling backend based on signalfd(2) system call, and public function event_base_get_signal_method() to obtain an underlying kernel signal handling mechanism. Signed-off-by: Dmitry Antipov <dantipov@cloudlinux.com>
Leon George 3ec3b469 2022-10-23T13:47:23 ws: fix compile error on centos 7 - very old compiler (#1359) * http: fix typo * ws: fix comile error On CentOS: CC ws.lo ws.c: In function 'get_ws_frame': ws.c:244:3: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < payload_len; i++) { ^ ws.c:244:3: note: use option -std=c99 or -std=gnu99 to compile your code
Dmitry Ilyin c2ecb4ac 2022-10-12T14:13:44 Add locks for server WS, fixes #1357
Dmitry Ilyin aa163a4f 2022-10-04T21:42:30 Fix memleak in regress tests
Dmitry Ilyin 88317a4e 2022-10-04T17:49:22 Add helpers and all regress tests are passed
zhenhaonong f8bb9d84 2022-09-16T15:55:56 Fix socketpair failure when temporary directory has non-latin character
Dmitry Ilyin e8313084 2022-09-12T22:16:56 Add minimal WebSocket server implementation for evhttp (#1322) This adds few functions to use evhttp-based webserver to handle incoming WebSockets connections. We've tried to use both libevent and libwebsockets in our application, but found that we need to have different ports at the same time to handle standard HTTP and WebSockets traffic. This change can help to stick only with libevent library. Implementation was inspired by modified Libevent source code in ipush project [1]. [1]: https://github.com/sqfasd/ipush/tree/master/deps/libevent-2.0.21-stable Also, WebSocket-based chat server was added as a sample.
Azat Khuzhin bb57cea3 2022-08-14T09:56:50 test: fix util/getaddrinfo for netbsd (v2) Fixes: c198b0ce ("test: fix util/getaddrinfo for netbsd") Fixes: #1316
Azat Khuzhin 77a9b60e 2022-08-14T00:46:48 Merge pull request #1315 from yogo1212/http_per_socket_bebcb In it's current form, libevent requires multiple struct evhttp objects to be created in order to enable listening on sockets with more than one type of encryption. This change allows specifying per-socket how the associated bufferevents should be created. Thus, it becomes possible to have multiple listening sockets with different encryption parameters using only one evttp.
Azat Khuzhin c198b0ce 2022-08-13T20:48:00 test: fix util/getaddrinfo for netbsd Fixes: #1316
Leon M. George 1bdc9135 2022-08-01T10:16:18 http: allow setting bevcb per socket Co-authored-by: Azat Khuzhin <azat@libevent.org> v2: remove handling of HTTP_BIND_IPV6
Azat Khuzhin a4cdc3c5 2022-08-13T19:51:02 test: allow to run init_ssl() multiple times
Azat Khuzhin 4ca417af 2022-08-13T19:51:45 test: add a comment for init_ssl() about suppressions for LSan
Azat Khuzhin 33fb0e35 2022-07-12T09:54:14 test: fix unused variable in rand test (catched by newer clang)
Azat Khuzhin 213a822a 2022-07-11T22:52:57 test: increase timeout significantly in dns/getaddrinfo_cancel_stress (for TSan) Fixes: #1304
Azat Khuzhin 5ff98dc1 2022-07-10T17:33:15 evdns: accept domains up to 254 long (previosly only 63 long was accepted) Previously evdns was using HOST_NAME_MAX, and define it to 255 *only* if it not set, however it does set on linux: $ egrep -r define.*HOST_NAME_MAX /usr/include/bits /usr/include/bits/local_lim.h:#define HOST_NAME_MAX 64 /usr/include/bits/posix1_lim.h:#define _POSIX_HOST_NAME_MAX 255 /usr/include/bits/confname.h:#define _SC_HOST_NAME_MAX _SC_HOST_NAME_MAX But 64 should be the limit of the host component, not for the whole hostname, as also noted by @ploxiln So use our own EVDNS_NAME_MAX const, which is set to 255. Fixes: #1280
Azat Khuzhin 1933f6aa 2022-07-10T16:31:57 test: make dns/getaddrinfo_cancel_stress more deterministic Fixes: #1271 Follow-up for: 90bcf2d660b9b43cb8e747421d4938f08f935bd7
Azat Khuzhin d84c8851 2022-07-10T09:59:14 test: suppress warning for already defined SSL_get_peer_certificate build report: [1/2] Building C object CMakeFiles/regress.dir/test/regress_mbedtls.c.o /src/le/libevent/test/regress_mbedtls.c:50: warning: "SSL_get_peer_certificate" redefined 50 | #define SSL_get_peer_certificate mbedtls_ssl_get_peer_cert | In file included from /src/le/libevent/test/regress.h:139, from /src/le/libevent/test/regress_mbedtls.c:35: /src/oss/openssl/include/openssl/ssl.h:1799: note: this is the location of the previous definition 1799 | # define SSL_get_peer_certificate SSL_get1_peer_certificate | [2/2] Linking C executable bin/regress But this should be cleaned up.
Azat Khuzhin c22f2757 2022-07-09T23:27:23 Use OPENSSL_VERSION_NUMBER over OPENSSL_VERSION_MAJOR (for compatibility) Since OpenSSL 3.0 there is new OPENSSL_VERSION_MAJOR, but previous releases does not have it. So let's use plain old OPENSSL_VERSION_NUMBER to avoid more preprocessor macros.
William Marlow 29c420c4 2022-06-18T21:43:31 Initial OpenSSL 3.0 support * Don't use deprecated functions when building against OpenSSL 3.0. * Recognise that OpenSSL 3.0 can signal a dirty shutdown as a protocol. error in addition to the expected IO error produced by OpenSSL 1.1.1 * Update regress_mbedtls.c for compatibility with OpenSSL 3
William Marlow 384c52e6 2022-06-23T23:06:14 Initial Mbed-TLS 3 support to get the GitHub Actions working again mingw has upgraded to Mbed-TLS 3.1.0, so all the mingw tests that need Mbed-TLS currently don't work. v2: add missing mbedtls/version.h into test/regress_mbedtls.c v3: suppress #warning "Including compat-2.x.h is deprecated" for mbedtls/compat-2.x.h
Azat Khuzhin 89332176 2022-07-09T17:14:12 test: ignore -Walloc-size-larger-than error for calloc() returns ENOMEM Compiler report: /home/runner/work/libevent/libevent/test/regress_util.c: In function ‘test_event_calloc’: /home/runner/work/libevent/libevent/test/regress_util.c:1318:4: error: argument 2 value ‘9223372036854775815’ exceeds maximum object size 9223372036854775807 [-Werror=alloc-size-larger-than=] p = mm_calloc(EV_SIZE_MAX/2, EV_SIZE_MAX/2 + 8); In file included from /home/runner/work/libevent/libevent/test/../util-internal.h:37:0, from /home/runner/work/libevent/libevent/test/regress_util.c:30: /usr/include/stdlib.h:541:14: note: in a call to allocation function ‘calloc’ declared here extern void *calloc (size_t __nmemb, size_t __size) v2: clang on CI does not have this option
Peter Edwards 187f6b91 2022-06-27T22:41:47 OpenSSL 3 fixes: Disable TLS 1.3 when testing renegotiation support TLS 1.3 does not support renegotation - it has been removed from the protocol. Disable TLS 1.3 when testing this, so we negotiate an older protocol version
Peter Edwards e563c9b2 2022-06-27T22:00:05 OpenSSL 3 fixes: use SHA256 instead of SHA1 OpenSSL 3.x does not support signing certificates with SHA1 by default. Use SHA256 instead.
Jessica Clarke a9595ccd 2021-12-21T13:15:58 regress_ssl: Use intptr_t when shoving an int into a void * Currently the code uses long, but long does not always have the same representation as a pointer, such as on 64-bit Windows where long is only 32-bit due to its unususal LLP64 ABI, but also on CHERI, and thus Arm's prototype Morello architecture, where C language pointers are represented as hardware capabilities, which have bounds, permissions and other metadata to enforce spatial memory safety. Both of these cases warn when casting a long to a pointer (Windows due to long being shorter and thus it being likely you've truncated the address, and CHERI due to long not having any capability metadata like pointers and thus it being likely you've stripped the metadata, with the resulting "null-derived" capability destined to trap if dereferenced), and in both cases casting to intptr_t as the intermediate type instead will get rid of those warnings.
Azat Khuzhin 09e9fed2 2021-12-21T08:47:00 test: fix leak in http/cancel_*server_timeout tests Fixes: #1242
Yongsheng Xu cd6a41ec 2021-12-10T11:05:13 feat: add `evdns_base_get_nameserver_fd` method To get underlying udp socket fd.
moonlightsh 12cedc8a 2021-11-17T08:40:40 Fix deadlock in case of evconnlistener_disable() in parallel with callback I've got an issue when stop evconnlistener not in the event_base_loop() thread. evconnlistener_disable() acquired lev->lock, if the same time, user callbacks is runing, the event thread released lock, after callback finished, it try to aquire the lock again, I think this makes conflict: Here is backtraces: thread 1: 0 __lll_lock_wait (futex=futex@entry=0x555555559a60, private=0) at lowlevellock.c:52 1 0x00007ffff7f2a131 in __GI___pthread_mutex_lock (mutex=0x555555559a60) at ../nptl/pthread_mutex_lock.c:115 2 0x00007ffff7f424c9 in evthread_posix_lock (mode=0, lock_=0x555555559a60) at evthread_pthread.c:79 3 0x00007ffff7f7dc12 in listener_read_cb (fd=7, what=2, p=0x5555555599a0) at listener.c:439 4 0x00007ffff7f6d758 in event_persist_closure (base=0x555555559370, ev=0x5555555599d8) at event.c:1645 5 0x00007ffff7f6da60 in event_process_active_single_queue (base=0x555555559370, activeq=0x5555555597e0, max_to_process=2147483647, endtime=0x0) at event.c:1704 6 0x00007ffff7f6e018 in event_process_active (base=0x555555559370) at event.c:1805 7 0x00007ffff7f6e92a in event_base_loop (base=0x555555559370, flags=0) at event.c:2047 8 0x0000555555555449 in main () at test_listen.c:67 thread 2: 0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559858) at ../sysdeps/nptl/futex-internal.h:183 1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x555555559800, cond=0x555555559830) at pthread_cond_wait.c:508 2 __pthread_cond_wait (cond=0x555555559830, mutex=0x555555559800) at pthread_cond_wait.c:638 3 0x00007ffff7f426f3 in evthread_posix_cond_wait (cond_=0x555555559830, lock_=0x555555559800, tv=0x0) at evthread_pthread.c:162 4 0x00007ffff7f70bc5 in event_del_nolock_ (ev=0x5555555599d8, blocking=2) at event.c:2934 5 0x00007ffff7f70748 in event_del_ (ev=0x5555555599d8, blocking=2) at event.c:2821 6 0x00007ffff7f707a1 in event_del (ev=0x5555555599d8) at event.c:2830 7 0x00007ffff7f7d76e in event_listener_disable (lev=0x5555555599a0) at listener.c:343 8 0x00007ffff7f7d6e5 in evconnlistener_disable (lev=0x5555555599a0) at listener.c:325 9 0x00005555555552c3 in disable_thread (arg=0x5555555599a0) at test_listen.c:27 10 0x00007ffff7f27609 in start_thread (arg=<optimized out>) at pthread_create.c:477 11 0x00007ffff7e4e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
fanquake 082941ed 2021-11-24T14:41:33 build: remove inconsistently used x-prefix comparisons Given that these are already used inconsistently with `test` checks, it makes sense to consolidate to not use the x-prefix comparisons at all. In any case, it would be nice to think we no longer have to work around a problem that existed in shells many, many years ago. More info: https://github.com/koalaman/shellcheck/wiki/SC2268 https://www.vidarholen.net/contents/blog/?p=1035
Tomas Gonzalez 9a38bc5f 2021-11-01T10:01:06 evutil: Fix evutil_freeaddrinfo During testing on win32, util/getaddrinfo failed with NULL hint info r = evutil_getaddrinfo("www.google.com", NULL, NULL, &ai); throwing a critical heap exception when evutil_freeaddrinfo is called. This is because of improper use of freeaddrinfo when nodes within the ai structure are allocated using mm_malloc or mm_calloc (EVUTIL_AI_LIBEVENT_ALLOCATED) This adds the flag in apply_socktype_protocol_hack and walks the linked list in evutil_freeaddrinfo removing linked list nodes that are custom allocated before calling freeaddrinfo.
Thomas Perrot 3daebf30 2021-09-29T13:50:35 test: retriable tests are marked failed only when all attempts have failed Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
Azat Khuzhin 90846c30 2021-09-19T13:18:40 test: add --retries-delay (and set to 1 second by default) In attemp to address failures of dns/tcp_* tests under windows [1]. [1]: https://github.com/azat/libevent/runs/3644218468?check_suite_focus=true
Azat Khuzhin d7d6af75 2021-09-19T13:15:02 test: add --retries argument
Azat Khuzhin 29492364 2021-09-19T12:56:24 test/regress_http: mark data_length_constraints as retriable CI: https://github.com/libevent/libevent/runs/3643914024?check_suite_focus=true
Azat Khuzhin 7855900c 2021-09-19T12:24:50 test/dns: mark TCP tests as retriable CI: https://github.com/azat/libevent/runs/3643912296 # tcp_resolve_many_clients CI: https://github.com/azat/libevent/runs/3643912192 # tcp_timeout CI: https://github.com/azat/libevent/runs/3643912336 # tcp_resolve CI: https://github.com/azat/libevent/runs/3643912174 # tcp_resolve_pipeline
Azat Khuzhin 6ad6afb6 2021-09-19T12:23:48 test/regress: retry some signal rlated tests in darwin CI: https://github.com/azat/libevent/runs/3643912290 # simplestsignal CI: https://github.com/azat/libevent/runs/3643912296 # simplesignal CI: https://github.com/azat/libevent/runs/3643912228 # multiplesignal
Azat Khuzhin 58606a62 2021-09-19T12:21:39 test/regress_util: mark monotonic_prc as retriable CI: https://github.com/azat/libevent/runs/3643966877
Azat Khuzhin de53da2e 2021-09-19T11:07:55 test/regress_http: fix unix_socket test
Azat Khuzhin 95eadf04 2021-09-19T10:54:27 test/regress_http: disable max_connections/data_length_constraints under windows CI: https://github.com/libevent/libevent/runs/3643554394
Azat Khuzhin f1e9e4da 2021-09-19T01:47:42 test: cleanup stalled socket after running http/unix_sock Otherwise it breaks upload-artifacts: Run actions/upload-artifact@v1 Uploading artifact 'ubuntu-18.04-cmake-NONE-build' from '/home/runner/work/libevent/libevent/build' for run #346 Uploading 1095 files File error 'No such device or address' when uploading file '/home/runner/work/libevent/libevent/build/foo'. ... Error: No such device or address Error: Exit code 1 returned from process: file name '/home/runner/runners/2.282.1/bin/Runner.PluginHost', arguments 'action "GitHub.Runner.Plugins.Artifact.PublishArtifact, Runner.Plugins"'.
Azat Khuzhin f89e8612 2021-09-19T01:23:07 test: check return value of write()/send() in bufferevent_read_failed This will also suppress: ../test/regress_bufferevent.c: In function ‘test_bufferevent_read_failed’: 1102 ../test/regress_bufferevent.c:1395:2: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result] 1103 write(data->pair[0], buf, strlen(buf));
Azat Khuzhin 04fcd7c6 2021-09-19T00:57:31 test: mark util/monotonic_prc_fallback as retriable Refs: #1193
Pierce Lopez 5303feff 2021-09-17T04:47:34 test: http_unix_socket_test: fix url could be freed uninitialized > regress_http.c:2279:2: warning: variable 'uri' is used uninitialized > whenever 'if' condition is true
Pierce Lopez 4f73bf3a 2021-09-17T01:56:56 test: regress_http: skip unix socket parsing tests in windows windows doesn't do unix sockets
Pierce Lopez 58d4e50d 2021-09-17T01:39:46 test: fix regress_http evhttp_bind_unixsocket() on macOS needs to use evutil socket helper for SOCK_NONBLOCK / SOCK_CLOEXEC
Pierce Lopez fabbf3b3 2021-09-14T01:19:36 test: skip dns_initialize_nameservers if missing /etc/resolv.conf some build systems run tests in minimal containers with no resolv.conf, and the primary thing this test does is load the default /etc/resolv.conf
Azat Khuzhin 86292628 2021-08-10T23:14:01 test: fix checking test args for http_parse_uri_test
Sean Young f446229b 2016-01-31T11:31:00 http: support unix domain sockets There are no standard for encoding a unix socket in an url. nginx uses: http://unix:/path/to/unix/socket:/httppath The second colon is needed to delimit where the unix path ends and where the rest of the url continues. Signed-off-by: Sean Young <sean@mess.org>
Alex Budovski 8f74b30c 2021-05-30T13:05:25 Replace gettimeofday with the portable wrapper Otherwise the Win32 build fails.
Sergey Matveychuk 19b3fd0b 2021-04-07T20:39:18 evdns: add ability to get CNAME Add new flag (DNS_CNAME_CALLBACK) for evdns_base_resolve_ipv4()/evdns_base_resolve_ipv6(). If set, you will get one more callback with type == DNS_CNAME and CNAME in addrs argument.
Yi Fan Yu dff8fd27 2021-04-22T22:35:59 test/regress.h: Increase default timeval tolerance 50 ms -> 100 ms The default timeout tolerance is 50 ms, which causes intermittent failure in many the related tests in arm64 QEMU. See: https://bugzilla.yoctoproject.org/show_bug.cgi?id=14163 (The root cause seems to be a heavy load) Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
fanquake 4c29b01c 2021-03-28T10:57:11 build: remove splice implementation fragments Looks like a `splice` implementation was planned, but has clearly never eventuated (the TODO comment is from ~12 years ago, in 8b5bd77415fb6634fadf08357676926fecf5f032). For now, it's probably better to remove the unused code/correct the docs.
lilei bc25889f 2021-02-03T14:19:57 Check return value of evbuffer_remove() in bufferevent_read() The conflict cast convertion between the return value of bufferevent_read() and evbuffer_remove(), int(-1)->size_t(An undefined maximum) Add test case of bufferevent_read() should return 0 in case of evbuffer_remove() returns -1 Fixes: #1132
Azat Khuzhin f17eb6f5 2021-01-18T23:23:42 test/regress_http: cover reading of chunked payload by server This is an example with transfer-encoding by client via bufferevent for the #1131
chux0519 617ba838 2021-01-09T17:19:27 evdns: add max-probe-timeout/probe-backoff-factor settings I recently found that when the network status changed when calling bufferevent_socket_connect_hostname (e.g. switching between several WIFIs), all DNS servers would fail, and the timeout of probe would be very long if there were many DNS requests. I want libevent to support manual setting of MAX_PROBE_TIMEOUT and TIMEOUT_BACKOFF_FACTOR So move hardcoded MAX_PROBE_TIMEOUT and TIMEOUT_BACKOFF_FACTOR into struct, and allow changing them.
Azat Khuzhin a490172d 2020-10-31T22:53:31 Introduce new BUFFEREVENT_SSL_BATCH_WRITE flag to avoid Nagle effect in SSL
Azat Khuzhin e91c4363 2020-10-27T01:40:34 http: add EVHTTP_URI_HOST_STRIP_BRACKETS Refs: #1115
okhowang(王沛文) 53c68675 2020-09-15T18:15:24 test: fix windows error when mbedtls https
okhowang(王沛文) 2403ae57 2020-09-06T15:33:32 test: add https with mbedtls
Berbe c2a9ecff 2020-08-29T18:41:39 Fix: long -> enum evhttp_cmd_type type
Azat Khuzhin 2338f27e 2020-08-29T01:15:20 test/regress_dns: fix -Wmaybe-uninitialized Was not noticed since it is reported only with optimization enabled, as stated in gcc(1): The effectiveness of some warnings depends on optimizations also being enabled. For example -Wsuggest-final-types is more effective with link-time optimization and -Wmaybe-uninitialized does not warn at all unless optimization is enabled. And interesting thing is that it is reported only for -O2, not for -O3, that's why I did not catched it in both cmake env that I had: - debug (it has -O0) - release (it has -O3) While autoconf has -O2.
Azat Khuzhin eeeed1e1 2020-07-28T01:19:28 test/dns: fix initialize_nameservers when there is ipv6 in /etc/resolv.conf Fixes: #1060
Azat Khuzhin 53e53b01 2020-07-23T00:22:45 test/regress_buffer.c: fix -Wbad-function-cast (in some specific env) Fixes: #1054
Azat Khuzhin 1bfbbdf2 2020-07-22T23:10:17 test: rename ssl/* -> openssl/*
okhowang(王沛文) 028385f6 2020-05-28T17:14:46 fix build system and add test and cleanup code
Azat Khuzhin 90bcf2d6 2020-07-05T11:59:32 test: fix leak in dns/getaddrinfo_cancel_stress Some requests may get response (evutil_addrinfo) from gaic_server_cb, in case of cancel_event (10000ms) will not be fast enough.
Azat Khuzhin ba19b356 2020-07-05T11:45:56 test: fix UB in evbuffer/empty_reference_prepend_buffer UBSAN reports: test/regress_buffer.c:2360:2: runtime error: null pointer passed as argument 1, which is declared to never be null /usr/include/string.h:140:33: note: nonnull attribute specified here
Azat Khuzhin 7b9ba3b7 2020-07-05T11:14:18 test: really disable bufferevent_pair_release_lock under ASAN (and fix gcc)
Azat Khuzhin e2f938c0 2020-07-05T11:08:05 test-closed: fix leak
Azat Khuzhin 0ac3cfc0 2020-06-26T10:35:44 test: add getaddrinfo(AI_ADDRCONFIG) test (off by default)
Azat Khuzhin ec94a6bb 2020-06-25T21:56:31 test: fix memory leaks for https (add BEV_OPT_CLOSE_ON_FREE) - http/https_filter_basic - http/https_filter_chunk_out
Azat Khuzhin cdbb2373 2020-06-25T21:40:40 test: "fix" (with a quirk) leak in ssl/bufferevent_wm (w/o defer callbacks)
Azat Khuzhin 3b13a647 2020-06-25T21:25:51 test: disable bufferevent/bufferevent_pair_release_lock under ASAN (too tricky) And cannot be suppressed with suppressions due to setup routines.
Azat Khuzhin 6754740f 2020-06-25T21:01:53 test: detect test failures if atexit handler calls _exit(!0) (sanitizers) tinytest uses another way of detecting test failures, it uses pipe between child and parent, and if the test function in child returns OK it writes OK flag into pipe, and reads it in parent. However sanitizers uses atexit handlers to detect leaks, and this will not detect failures in case of exit() will be called from the atexit handlers, fix this by checking status after waitpid().
Azat Khuzhin a0c642ac 2020-06-25T10:15:01 buffer: do not pass NULL to memcpy() from evbuffer_pullup() UBSAN reports: evbuffer/remove_buffer_with_empty3: ../buffer.c:1443:3: runtime error: null pointer passed as argument 2, which is declared to never be null #0 0x7ffff6cd0410 in evbuffer_pullup ../buffer.c:1443 #1 0x5555556d68b9 in test_evbuffer_remove_buffer_with_empty3 ../test/regress_buffer.c:408 #2 0x5555557b95ee in testcase_run_bare_ ../test/tinytest.c:173 #3 0x5555557ba048 in testcase_run_one ../test/tinytest.c:333 #4 0x5555557bc0f8 in tinytest_main ../test/tinytest.c:527 #5 0x555555787702 in main ../test/regress_main.c:528 #6 0x7ffff606c001 in __libc_start_main (/usr/lib/libc.so.6+0x27001) #7 0x55555569436d in _start (/src/le/libevent/.cmake-debug/bin/regress+0x14036d)
Azat Khuzhin 6f152bef 2020-06-25T09:59:35 test: do not pass NULL to memcmp() in evbuffer_datacmp() helper Fixes: runtime error: null pointer passed as argument 2, which is declared to never be null
Azat Khuzhin 37dbb350 2020-06-25T08:45:34 http: fix undefined-shift in EVUTIL_IS*_ helpers evutil.c:2559:1: runtime error: left shift of 1 by 31 places cannot be represented in type 'int' #0 0x4f2be0 in EVUTIL_ISXDIGIT_ libevent/evutil.c:2559:1 #1 0x4bd689 in regname_ok libevent/http.c:4838:7 #2 0x4bc16b in parse_authority libevent/http.c:4958:9 #3 0x4bb8b5 in evhttp_uri_parse_with_flags libevent/http.c:5103:7 #4 0x4bb762 in evhttp_uri_parse libevent/http.c:5050:9 #5 0x4b8f41 in evhttp_parse_query_impl libevent/http.c:3505:9 #6 0x4b8ed7 in evhttp_parse_query libevent/http.c:3569:9 Bug: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23291 Report: https://oss-fuzz.com/testcase-detail/5670743106125824
Azat Khuzhin 2aaa7358 2020-06-02T10:12:20 test/regress_http: remove second ARRAY_SIZE macros
Azat Khuzhin 8b5a4d61 2020-06-02T10:01:31 test/regress_testutils: use inet_addr()
Azat Khuzhin 271c5aaa 2020-06-02T10:00:38 test/regress_dns: use tt_int_op() over tt_assert() in assert_request_results()
seleznevae 83c58d49 2020-05-31T19:59:49 evdns: Add support for setting maximum UDP DNS message size. Added new option `edns-udp-size` for evdns_base which allows to control maximum allowed size of UDP DNS messages. This maximum size is passed to the DNS server via edns mechanism.
Azat Khuzhin 7426a568 2020-05-25T11:25:18 http: Merge branch 'http-max_connections-pr-592' @jcoffland: "When the max connection limit is enabled and the limit is reached, the server will respond immediately with 503 Service Unavailable. This can be used to prevent servers from running out of file descriptors. This is better than request limiting because clients may make more than one request over a single connection. Blocking a request does not necessarily close the connection and free up a socket." * http-max_connections-pr-592: test: cover evhttp max connections Added evhttp max simultaneous connection limiting
Azat Khuzhin 95c1c200 2020-05-25T03:34:16 test: cover evhttp max connections
Azat Khuzhin 028842aa 2020-05-25T03:13:00 Merge branch 'evdns-tcp-pr-1004' @seleznevae: "Added support for DNS requests via TCP. By default, requests are done via UDP. In case truncated response is received new attempt is done via TCP connection. Added 2 new macros DNS_QUERY_USEVC and DNS_QUERY_IGNTC to force all requests to be done via TCP and to disable switch to TCP in case of truncated responses. Also added possibility for DNS server to listen and receive requests on TCP port. Current implementation of TCP support in DNS server seems rather preliminary and maybe changes after discussion and code review. Fallback to TCP in case of truncated DNS requests is done automatically. To imitate the old behaviour macros DNS_QUERY_IGNTC should be used. To force all DNS requests to be done via TCP one should use the flag DNS_QUERY_USEVC. Names DNS_QUERY_IGNTC, DNS_QUERY_USEVC were chosen to imitate similar flags in c-ares and glibc." Ok, interfaces looks good, merging to avoid stalling it for too long. * evdns-tcp-pr-1004: evdns: fix coding style issues evdns: fix trailing whitespaces evdns: bufferevent_setcb before bufferevent_free is redundant evdns: Implement dns requests via tcp
Azat Khuzhin e8c89510 2020-05-25T02:06:32 test: http/autofree_connection cleanup
ayuseleznev 0f6ee89a 2020-05-21T12:46:20 evdns: Implement dns requests via tcp
Azat Khuzhin 70f69194 2020-05-19T01:05:50 test: cleanup http/autofree_connection
Azat Khuzhin 1cc94fea 2020-05-19T00:52:01 test: fix http/autofree_connection Refs: #182