aboutgitcodebugslistschat
path: root/conf.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-07-17 10:36:00 +1000
committerStefano Brivio <sbrivio@redhat.com>2024-07-17 07:04:55 +0200
commitf79c42317fb80ee181b13273c80f93b7af6f04f3 (patch)
treea16ee8f2401a23c441fdb3ab38839fe6d468033b /conf.c
parenta740e16fd1b9bdca8d259aa6d37f942a3874425c (diff)
downloadpasst-f79c42317fb80ee181b13273c80f93b7af6f04f3.tar
passt-f79c42317fb80ee181b13273c80f93b7af6f04f3.tar.gz
passt-f79c42317fb80ee181b13273c80f93b7af6f04f3.tar.bz2
passt-f79c42317fb80ee181b13273c80f93b7af6f04f3.tar.lz
passt-f79c42317fb80ee181b13273c80f93b7af6f04f3.tar.xz
passt-f79c42317fb80ee181b13273c80f93b7af6f04f3.tar.zst
passt-f79c42317fb80ee181b13273c80f93b7af6f04f3.zip
conf: Don't configure port forwarding for a disabled protocol
UDP and/or TCP can be disabled with the --no-udp and --no-tcp options. However, when this is specified, it's still possible to configure forwarded ports for the disabled protocol. In some cases this will open sockets and perform other actions, which might not be safe since the entire protocol won't be initialised. Check for this case, and explicitly forbid it. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'conf.c')
-rw-r--r--conf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/conf.c b/conf.c
index 3c38ceb..629eb89 100644
--- a/conf.c
+++ b/conf.c
@@ -132,6 +132,11 @@ static void conf_ports(const struct ctx *c, char optname, const char *optarg,
return;
}
+ if ((optname == 't' || optname == 'T') && c->no_tcp)
+ die("TCP port forwarding requested but TCP is disabled");
+ if ((optname == 'u' || optname == 'U') && c->no_udp)
+ die("UDP port forwarding requested but UDP is disabled");
+
if (!strcmp(optarg, "auto")) {
if (fwd->mode)
goto mode_conflict;