From f6a9ea3af5384ac561b67494073d520145ae2281 Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 6 Apr 2023 13:28:12 +1000 Subject: nstool: Add magic number to advertized information So that we'll probably give a better error if you point it at something that's not an nstool hold control socket. Signed-off-by: David Gibson Signed-off-by: Stefano Brivio --- test/nstool.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/nstool.c b/test/nstool.c index 2682c6b..fccbfb9 100644 --- a/test/nstool.c +++ b/test/nstool.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -45,7 +46,10 @@ const struct ns_type nstypes[] = { { CLONE_NEWUTS, "uts" }, }; +#define NSTOOL_MAGIC 0x7570017575601d75ULL + struct holder_info { + uint64_t magic; pid_t pid; uid_t uid; gid_t gid; @@ -104,6 +108,10 @@ static int connect_ctl(const char *sockpath, bool wait, if ((size_t)len < sizeof(*info)) die("short read() on control socket %s\n", sockpath); + if (info->magic != NSTOOL_MAGIC) + die("Control socket %s doesn't appear to belong to nstool\n", + sockpath); + if (peercred) { socklen_t optlen = sizeof(*peercred); @@ -143,6 +151,7 @@ static void cmd_hold(int argc, char *argv[]) if (rc < 0) die("listen() on %s: %s\n", sockpath, strerror(errno)); + info.magic = NSTOOL_MAGIC; info.pid = getpid(); info.uid = getuid(); info.gid = getgid(); -- cgit v1.2.3