From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0707946DAF for ; Thu, 28 Aug 2025 07:29:14 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F421A40263; Thu, 28 Aug 2025 07:29:13 +0200 (CEST) Received: from mail-pg1-f170.google.com (mail-pg1-f170.google.com [209.85.215.170]) by mails.dpdk.org (Postfix) with ESMTP id 179DB40263 for ; Thu, 28 Aug 2025 07:29:13 +0200 (CEST) Received: by mail-pg1-f170.google.com with SMTP id 41be03b00d2f7-b47173749dbso463319a12.1 for ; Wed, 27 Aug 2025 22:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uetpeshawar-edu-pk.20230601.gappssmtp.com; s=20230601; t=1756358952; x=1756963752; darn=dpdk.org; 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; bh=zudB1soIQ+4el4aegCleupr6DZa62XkvqbuqljDoj/g=; b=0k1i4/rHKah2bIh1uUuFXZ4DZXPUnOZ/sl1nSsKMK1RObxlFwHi8z2lSk+9+g8d83x fzJh3209AnrRvWeYA7CVg8n4hK9/Gkyw9h5A0yGDcFTeGulI80dkwcUClmQjys3gfi8H bpXUXJ5d3iXyizgKoC4X+3GqeXLD+ebxDjxjEdL4uM5pDWw0enj1y94exfx+WpnYENgc T5kQju+T+Qs1Jc0EK9XHHBbVk9qaSNvQdc41csZQbARTJ+/N4DjnTsqmrKv1XnzCJaJY sSJoKXakDC23nish03VEx5VuXCxFKtkSO678vGnnZob/OpniYBaIWiQC2OrquLghmORs 2NyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756358952; x=1756963752; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zudB1soIQ+4el4aegCleupr6DZa62XkvqbuqljDoj/g=; b=XDnX+nuRT59Wx5RIPXv1bz7fsmjXNpHdITronK4JHbQ5lennzbi/TbTTpjVA1U/64B zokaPePILkpt0ZE8Fa0aJr9UnaYGonNZ0WLbD50dI4SU6y5kBlspdlChkjuGgRa1jzRE gSer31sEAqETrzw0X47Jit4eckXNX2uywkcDImImuDcnD5Et0xTFQaxQvwMvH7JhX3r+ kHp/5jg1KU8yJGdeZyVhvYL2Kx14k8C/htObzNEvdPFs8aBk5pWk+BLlr6cqUBGqzYsS kCKbP8UNcLDjSwyHLB4dWkp62tqIOxEZdh/4/k91Q3y0tEfDVh2kH4NoxYkALrvN+91S chYA== X-Forwarded-Encrypted: i=1; AJvYcCUyVbN+cjq0yQeZZltXmyKpsxjSBv79kwTC/Zjoj0ARjEPfjTmaQ8TMTQzCM0eToGmSwNMBclQ=@dpdk.org X-Gm-Message-State: AOJu0YzbVnThspC6WdDALdMGMKzihpiXWM0BiJMHyIErTouDPvtcj/vb BIphH/o9r7G8Nw6btrmq8TW8sqyPzKtidZNRMuliqMkpEETbzXVgG0XQ+01C4b/fyVo= X-Gm-Gg: ASbGncuDqtJdM1cskm0D5OHVmHd56KK1x2GBzH4dOyqB9VoWi++skPS9MUmVitgTCSj WJ769XTjZ+1FGdTiFQlsV6G0H4OMn3+8ttCJkG1HnYaEPIWdx6eGfgYfOTQzuyt4Q9xB/Xql2ux OyRaWxLYGjC25++nU9Ef3D1tHPTbHINoQNGbsmwrQJ6p7GE3l8gDOyR7k7QXW83fk+bucYP0KOx qXtk36DjREF5oDKv6TpqcGGgd6M1M0u5qXDphUrJeprl19LbuIrAuNZLVtoUZr05qPgKLtHD/zP dQ1566KQqozYFjS8amR00T/hKtKXOPwZlcSFFD+Jf8mW3HO1s3bmu5c9AXOAN76EpO0kPIvz6Af QnmvRpWjdo0sFq8dCeVTWqqZ9v2F6gt2sMEnhj+RkJwcoMPHtngGaXXhCZYre1K9heXSEQe4S4p fM0qzNm4je4DP7unqAa1cBhJEirJmh89aGz2qRUXANJGC3lTvR1J2N1+qb8C+jsNhHbw== X-Google-Smtp-Source: AGHT+IEtxEe9lnQjy7ooPhgA3zaqrYpBtI8R7p+w9Y1C/17SBEusB9WBqaGDyYbbUD/HV/GZcnMRmQ== X-Received: by 2002:a17:902:da89:b0:248:cd4c:b43d with SMTP id d9443c01a7336-248cd4cb50dmr33336975ad.55.1756358952098; Wed, 27 Aug 2025 22:29:12 -0700 (PDT) Received: from localhost.localdomain ([64.62.143.197]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-248b6a16ae3sm23507495ad.137.2025.08.27.22.29.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 27 Aug 2025 22:29:11 -0700 (PDT) From: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> To: Cristian Dumitrescu , Aman Singh , Sunil Kumar Kori Cc: dev@dpdk.org, Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk>, stable@dpdk.org Subject: [PATCH v3] app/testpmd: validate dscp and vlan table entries for meter creation Date: Thu, 28 Aug 2025 01:29:01 -0400 Message-ID: <20250828052901.4134670-1-14pwcse1224@uetpeshawar.edu.pk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250827111837.3882892-1-14pwcse1224@uetpeshawar.edu.pk> References: <20250827111837.3882892-1-14pwcse1224@uetpeshawar.edu.pk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Add validation mechanism for meter creation. The maximum possible entries are [ ...] [ ... ]. Currently, testpmd allows any input table entries for dscp and vlan tables. This patch validates the maximum possible dscp and vlan table entries for meter creation. Fixes: 9f5488e326d3b ("app/testpmd: support different input color method") Cc: stable@dpdk.org Signed-off-by: Khadem Ullah <14pwcse1224@uetpeshawar.edu.pk> --- app/test-pmd/cmdline_mtr.c | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/cmdline_mtr.c b/app/test-pmd/cmdline_mtr.c index e16c5b268f..0c5897ada8 100644 --- a/app/test-pmd/cmdline_mtr.c +++ b/app/test-pmd/cmdline_mtr.c @@ -85,15 +85,35 @@ parse_uint(uint64_t *value, const char *str) return 0; } +static int +validate_input_color_table_entries(char *str) +{ + char *saveptr; + char *token = strtok_r(str, PARSE_DELIMITER, &saveptr); + for (int i = 0; token != NULL; i++) { + if (i > ((MAX_DSCP_TABLE_ENTRIES + MAX_VLAN_TABLE_ENTRIES) - 1)) + return -1; + token = strtok_r(NULL, PARSE_DELIMITER, &saveptr); + } + return 0; +} + static int parse_input_color_table_entries(char *str, enum rte_color **dscp_table, enum rte_color **vlan_table) { enum rte_color *vlan, *dscp; - char *token; + char *token, *saveptr; + char *temp_str = strdup(str); int i = 0; - token = strtok_r(str, PARSE_DELIMITER, &str); + if (validate_input_color_table_entries(temp_str)) { + free(temp_str); + return -1; + } + free(temp_str); + + token = strtok_r(str, PARSE_DELIMITER, &saveptr); if (token == NULL) return 0; @@ -117,7 +137,7 @@ parse_input_color_table_entries(char *str, enum rte_color **dscp_table, if (i == MAX_DSCP_TABLE_ENTRIES) break; - token = strtok_r(str, PARSE_DELIMITER, &str); + token = strtok_r(NULL, PARSE_DELIMITER, &saveptr); if (token == NULL) { free(dscp); return -1; @@ -126,7 +146,7 @@ parse_input_color_table_entries(char *str, enum rte_color **dscp_table, *dscp_table = dscp; - token = strtok_r(str, PARSE_DELIMITER, &str); + token = strtok_r(NULL, PARSE_DELIMITER, &saveptr); if (token == NULL) return 0; @@ -154,7 +174,7 @@ parse_input_color_table_entries(char *str, enum rte_color **dscp_table, if (i == MAX_VLAN_TABLE_ENTRIES) break; - token = strtok_r(str, PARSE_DELIMITER, &str); + token = strtok_r(NULL, PARSE_DELIMITER, &saveptr); if (token == NULL) { free(vlan); free(*dscp_table); -- 2.43.0