From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=fail (p=none dis=none) header.from=gmail.com Received: from mail-dy1-x1333.google.com (mail-dy1-x1333.google.com [IPv6:2607:f8b0:4864:20::1333]) by passt.top (Postfix) with ESMTPS id 073955A0275 for ; Fri, 13 Nov 2026 12:21:28 +0100 (CET) Received: by mail-dy1-x1333.google.com with SMTP id 5a478bee46e88-36fc0a3fe93so1644461eec.0 for ; Fri, 13 Nov 2026 03:21:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1794568886; x=1795173686; darn=passt.top; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=p5jyio56gYx34YPlRSsKO+WicQzbwZYQvXO7nyrUrmQ=; b=VqnECyhW/xpEv/Awc9rPwIQOkJ9FL2UpXk/fwYFzuUZxsSZ8aVpoPe+hBbxlHn4sO6 cz0DsklQa0c7fzZ40LUgCQ245h6Yn73QYLBYykpQElO7RhADt34SnBTeOy5sMaNyCb+d a+2fdlp47QZvJNi2SHsG8dZHKxbKXXcmc7SvvTdZ24gx5yqqe8nGQiIwBdyNdGpqcreI tpzjw1bmNjeA6Wao6CViq7jgr26VFXcVetVFxokPLjBqFBsWqgV0WeDhDjy7XFwxi1ph km/qUCYN9LQhlP53iPlzfjY1bM0EjBhG9c18LPaz76p3iA4JeKPaXE0GKSo5bGQYqphk DOjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1794568886; x=1795173686; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=p5jyio56gYx34YPlRSsKO+WicQzbwZYQvXO7nyrUrmQ=; b=M+9NPs/0x8QbkpNs8NDdD0k8JMzKtpGbXXipAgYWQEy4WTI/+aVzi47dO4HMzmVLvL A+EKG+zZuGolWif5CW7LRqxAZFGpAAmqYv3JlzLiQZkl5DXGosWwP6LGpSBRN+0MXZhb syOOjb0HoNF9ahwKhHlgA5StgHQujvkNSmkgb9p9fau9dn6Pq2YoYI71cROhZ3Mwo6Tj 8vwMuMfmzLH+SgyfQbNkGBx7Uh0NLKHai8Q+SizKZAs7DYZ+JmXGvpuCVPuqOitkPIar FXjrT6d9TeHhms9EkMEAATyaxTCnqzofb33Y1Tz1jqe3VLxUFZO5ltKXDw86Oxmo4pWl d3hw== X-Gm-Message-State: APuU4Z+VC7p1lolN1c1XPhNK46jaBih04a4A5uUtCBYdW+/SuMD4xz/o 6A1ueHpS9R+td3V7tIdxaKWbKR8v/7uliwXWn7yBDeiituqnO9eQdDxq6MOmZsz6 X-Gm-Gg: AYBFou1vbZk1mAT9Wkdb8vbEv/YjB1M9TZB2u36KVMzbED8rU4Dng/QTzjokWEfgxsm r6yl1fgWcg5ZFkR4yzcrPEAEPF/MbMHoudLjpJHhHSFx57sybBfhpkzhdk8xUgYc0pKelaR9w1z 1jZFeiJgLavH7CJdO0U8sCC3rLr/wS+pr2KT+CpRmA2E9EalfU7bFoTT7esLZN1WspHNUKTY0nP YVHCSVDZ1TB3V+63OBp5zr/yP6Ml6Nz5HLQ/LmvL4z9CWyvU5LPivKdqzZxXY6fW76B5aUBfGdZ qE96WafOnph9MPZORJs1Ctv/WAJN1npqczuPzVeITMiMAtDmt0teM4TOYoggxAZPn9skZPqzfO1 JMChzS2wJesIR2/Ccu9Lu5z+sTyis/Eam20FAqk7Xfpa2fdYS4UFfEYiwcLhO72A0TjxMXTvE24 ulW9d78sgobORyW7uL0i563RdS9rsQMXyFd6t8Qg9T3BdOumiF41+8mA8WjsNk0bYEmG5kesB9B 2AS1Z8KCyNIXOdyJGUpUfW7djwhcXnEb9LFbDG/IcjEGzTDJZfBo0TNXAQdqUko9mhF2Ni/ctjO tQMPnMNoIVQD4spYYdSDQernbbTJbzlVuB2Paji9qJvUxW7h3b6VZ0z3QBo9WTiLhubkVMomO5y 1YiB4HTjkXEyxeruMbB4O3LqBxuGO X-Received: by 2002:a05:693c:835c:20b0:375:e4de:96d3 with SMTP id 5a478bee46e88-3796721dfb7mr1919735eec.31.1794568885179; Fri, 13 Nov 2026 03:21:25 -0800 (PST) Received: from localhost ([2405:201:7:7:2843:7bd:92d7:9f87]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-379563df84fsm12598764eec.20.2026.11.13.03.21.23 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 13 Nov 2026 03:21:24 -0800 (PST) From: Aditya Merchant To: passt-dev@passt.top Subject: [PATCH v2 2/2] pasta: Terminate inotify buffer, skip nameless events in netns watch Date: Fri, 13 Nov 2026 16:51:14 +0530 Message-ID: <20261113112114.38764-3-adityamerchant08@gmail.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20261113112114.38764-1-adityamerchant08@gmail.com> References: <20261113112114.38764-1-adityamerchant08@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-MailFrom: adityamerchant08@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation Message-ID-Hash: YVWSDJAXX3ASVQM75NTW5I3WDDLWUDCY X-Message-ID-Hash: YVWSDJAXX3ASVQM75NTW5I3WDDLWUDCY X-Mailman-Approved-At: Fri, 13 Nov 2026 14:07:19 +0100 CC: Stefano Brivio , David Gibson , Paul Holzinger X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: In pasta_netns_quit_inotify_handler(), we compare the name of each event we read with the base name of the namespace, but we don't make sure that the buffer we read events into is zero-terminated. Events without a name, such as the IN_IGNORED we get once the watch is removed, also have no name to compare: for those, ev->name points past the end of the event. Terminate the buffer, as wait_for_socket() in passt-repair does, and skip events without a name. Suggested-by: Stefano Brivio Signed-off-by: Aditya Merchant --- pasta.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pasta.c b/pasta.c index 4cd58fd..5ef678d 100644 --- a/pasta.c +++ b/pasta.c @@ -537,10 +537,13 @@ void pasta_netns_quit_inotify_handler(const struct ctx *c, int inotify_fd) if ((n = read(inotify_fd, buf, sizeof(buf))) < (ssize_t)sizeof(*ev)) return; + /* cppcheck-suppress [negativeIndex, unmatchedSuppression] */ + buf[n - 1] = '\0'; for (p = buf; p < buf + n; p += sizeof(*ev) + ev->len) { ev = (const struct inotify_event *)p; - if (!strncmp(ev->name, c->netns_base, sizeof(c->netns_base))) { + if (ev->len && + !strncmp(ev->name, c->netns_base, sizeof(c->netns_base))) { info("Namespace %s is gone, exiting", c->netns_base); passt_exit(EXIT_SUCCESS); } -- 2.50.1 (Apple Git-155)