From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=none (p=none dis=none) header.from=gibson.dropbear.id.au Authentication-Results: passt.top; dkim=pass (2048-bit key; secure) header.d=gibson.dropbear.id.au header.i=@gibson.dropbear.id.au header.a=rsa-sha256 header.s=202602 header.b=cqUNk1Hu; dkim-atps=neutral Received: from mail.ozlabs.org (gandalf.ozlabs.org [150.107.74.76]) by passt.top (Postfix) with ESMTPS id 008355A0265 for ; Tue, 21 Apr 2026 08:25:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202602; t=1776752718; bh=i/DSU4OHWHnGqKcLsRKgKQYQIxkUgduK4s7X70TdbiI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cqUNk1Huthoa5jwiVVtQQVVfjH0FKb1mNeHElBfgSsizL8kVl9PncBafSH93dWYxi z31imY9ha6u9ICYxxUWFu4YqCXa7fWRT6WKD6+e04J+qXI6HMT7jEKnRlBbDcXqAOU EMmd9ERK18OuV4OnKTPShqjGiqMXTqzWeSp6GN2aen1JQRQviqPpFl8FQHw2yBRdBh vBp3YrDDWnCl9DQjZDv1Xy5r7h+d2CIjoiXXDSs4/9rWWVN1b6r5b3BSDpxJpWcwPD cu+sbBodeq6ePGvCzNIVDY5WpJM3YOCBhQqsWt4m9pKlkUO+FJOXN42MAPUr07YTWD hwFhSQbL5Qvog== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4g0C5V2RYsz4wJV; Tue, 21 Apr 2026 16:25:18 +1000 (AEST) From: David Gibson To: Stefano Brivio , passt-dev@passt.top Subject: [PATCH v5 06/18] pif: Limit pif names to 128 bytes Date: Tue, 21 Apr 2026 16:25:04 +1000 Message-ID: <20260421062516.2601204-7-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260421062516.2601204-1-david@gibson.dropbear.id.au> References: <20260421062516.2601204-1-david@gibson.dropbear.id.au> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: BVC6IYQGEJFBRYQ65PYJXQ4EFWVRQLSM X-Message-ID-Hash: BVC6IYQGEJFBRYQ65PYJXQ4EFWVRQLSM X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: David Gibson 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: All current pif names are quite short, and we expect them to remain short when/if we allow arbitrary pifs. However, because of the structure of the current code we don't enforce any limit on the length. This will become more important with dynamic configuration updates, so start enforcing a length limit. Specifically we allow pif names to be up to 128 bytes (PIF_NAME_SIZE), including the terminating \0. This is more or less arbitrary, but seems like it should be comfortably enough for all the cases we have in mind. Signed-off-by: David Gibson --- pif.c | 2 +- pif.h | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pif.c b/pif.c index 1e807247..d5e31613 100644 --- a/pif.c +++ b/pif.c @@ -17,7 +17,7 @@ #include "inany.h" #include "epoll_ctl.h" -const char *pif_type_str[] = { +const char pif_type_str[][PIF_NAME_SIZE] = { [PIF_NONE] = "", [PIF_HOST] = "HOST", [PIF_TAP] = "TAP", diff --git a/pif.h b/pif.h index 7bb58e5c..90dd3a32 100644 --- a/pif.h +++ b/pif.h @@ -35,7 +35,9 @@ enum pif_type { PIF_NUM_TYPES, }; -extern const char *pif_type_str[]; +/* Maxmimum size of a pif name, including \0 */ +#define PIF_NAME_SIZE (128) +extern const char pif_type_str[][PIF_NAME_SIZE]; static inline const char *pif_type(enum pif_type pt) { @@ -43,6 +45,7 @@ static inline const char *pif_type(enum pif_type pt) return pif_type_str[pt]; else return "?"; + static_assert(sizeof("?") <= PIF_NAME_SIZE); } static inline const char *pif_name(uint8_t pif) -- 2.53.0