mirror of
https://github.com/Drop-OSS/libtailscale-drop.git
synced 2026-02-03 22:41:18 +01:00
libtailscale: EBADF on bad tailscale_listener_close fd
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
This commit is contained in:
committed by
David Crawshaw
parent
ae40e7a7f7
commit
9bf2df1ab1
@@ -201,6 +201,9 @@ func TsnetListenerClose(ld C.int) C.int {
|
||||
defer listeners.mu.Unlock()
|
||||
|
||||
l := listeners.m[ld]
|
||||
if l == nil {
|
||||
return C.EBADF
|
||||
}
|
||||
err := l.ln.Close()
|
||||
delete(listeners.m, ld)
|
||||
|
||||
|
||||
@@ -103,7 +103,10 @@ extern int tailscale_listen(tailscale sd, const char* network, const char* addr,
|
||||
|
||||
// tailscale_listener_close closes the listener.
|
||||
//
|
||||
// Returns zero on success or -1 on error, call tailscale_errmsg for details.
|
||||
// Returns:
|
||||
// 0 - success
|
||||
// EBADF - listener is not a valid tailscale_listener
|
||||
// -1 - call tailscale_errmsg for details
|
||||
extern int tailscale_listener_close(tailscale_listener listener);
|
||||
|
||||
// tailscale_accept accepts a connection on a tailscale_listener.
|
||||
|
||||
@@ -112,6 +112,10 @@ int test_conn() {
|
||||
if ((ret = tailscale_listener_close(ln)) != 0) {
|
||||
return set_err(s1, 'a');
|
||||
}
|
||||
if ((ret = tailscale_listener_close(ln)) != EBADF) {
|
||||
snprintf(err, errlen, "double tailscale_listener_close = %d (%s), want EBADF", errno, strerror(errno));
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((ret = tailscale_loopback(s1, addr, addrlen, proxy_cred, local_api_cred)) != 0) {
|
||||
return set_err(s1, 'b');
|
||||
|
||||
Reference in New Issue
Block a user