mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 04:13:28 +01:00
conn: Remove assert on new listener connection when retrying
Opening a new listener connection can fail in many ways like a bind() permission denied on a low port for instance. And thus, we should expect to handle an error when creating a new one instead of assert() on it. To hit the removed assert: ORPort 80 KeepBindCapabilities 0 Start tor. Then edit torrc: ORPort <some-IP>:80 HUP tor and the assert is hit. Fixes #40073 Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
72484a4953
commit
ea339227c2
3
changes/ticket40073
Normal file
3
changes/ticket40073
Normal file
@ -0,0 +1,3 @@
|
||||
o Minor bugfixes (relay configuration, crash):
|
||||
- Avoid a fatal assert() when failing to create a listener connection for an
|
||||
address that was in use. Fixes bug 40073; bugfix on 0.3.5.1-alpha.
|
@ -2923,7 +2923,14 @@ retry_all_listeners(smartlist_t *new_conns, int close_all_noncontrol)
|
||||
&skip, &addr_in_use);
|
||||
}
|
||||
|
||||
tor_assert(new_conn);
|
||||
/* There are many reasons why we can't open a new listener port so in case
|
||||
* we hit those, bail early so tor can stop. */
|
||||
if (!new_conn) {
|
||||
log_warn(LD_NET, "Unable to create listener port: %s:%d",
|
||||
fmt_addr(&r->new_port->addr), r->new_port->port);
|
||||
retval = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
smartlist_add(new_conns, new_conn);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user