From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id CE00FA328D for ; Tue, 22 Oct 2019 10:19:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B393149DF; Tue, 22 Oct 2019 10:19:03 +0200 (CEST) Received: from mail-pf1-f196.google.com (mail-pf1-f196.google.com [209.85.210.196]) by dpdk.org (Postfix) with ESMTP id 8927F49DF for ; Tue, 22 Oct 2019 10:19:02 +0200 (CEST) Received: by mail-pf1-f196.google.com with SMTP id x127so10166494pfb.7 for ; Tue, 22 Oct 2019 01:19:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=RNHxRShV8ZVNn05UN0R84Rt0guSj7Qbi1kpPV0X7aG4=; b=R+n42wxFfp1xZypy2lD7AsX/hnBzl0Yy1vGyFHfNQSEB3FQAHnHYxwQU61blQxR05/ gPmpkovM3xZgK4JYbkISdJZpE7OLlhf91vmMb4GXyqWso7NTWFw3GRzIx+/xKXv6RQM0 v7MnNnLPV3iabW++AlBW0wn4Jy6VGJb8ODJUfO3wCiIdNisFnQyqVu9q9hFoMsrO61p8 4fscn/EB+o9shQm0Xh+touJ0kK7VNefcazk+S8P5XsZjHn+1BEHbUwA3/IET/2v+JGYb 9xk0oT84QfDggkzHR5n1LJR1VNYpH5cD5SLxBRnSxF0AZkpm17ohrbH+0533JnvMZ2KC Rk6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=RNHxRShV8ZVNn05UN0R84Rt0guSj7Qbi1kpPV0X7aG4=; b=s3IciP7WkIFRoQdoyhw3lOu3coWLPspI3Skerk3zcO0PZ+rA8oPCyDWkX/AEJCwqUt yP1XOOv0ByQZ0iGAIfFrQi/ao1dSrlbuEp4+mfOkby7PGAKJxtz1U5NJRRvP1o6NHCPG Hn6H9f6p5t3GkSU+acaphQx63LoYjPuh8znFfLXpXFzhAKp2spvIbYOTFfbC+mwM128q lfpjomP1czjWUbr8dJj1MTEX82UItEAZwsYA+W3XIsqaB9Vywc/ezWcCtcooV00f9Yfs ykkWYtRgZPcvHBaIaiGUEC4YPqiHgKNQRX4/CG6TKnvnV2TvI9Y4MXl+Q91lc7QKGYhi DJ4Q== X-Gm-Message-State: APjAAAVZP7DOdA0l6549ubuCsrU7XLRPtl6tGoRBssPffyWmonTEj73s 2hpRhGC2wgYGZ/XBUiYTw010357aBZI= X-Google-Smtp-Source: APXvYqzwyjijx/GgdyV8FaAZ1WY/sozG1b2NIiAj5baNV/VjcOJO80K9nuCJmR2npDgQUwGD75YRIw== X-Received: by 2002:a62:1454:: with SMTP id 81mr2866328pfu.214.1571732341378; Tue, 22 Oct 2019 01:19:01 -0700 (PDT) Received: from localhost.localdomain ([2400:4050:c8c2:de00:491a:29d2:9bd1:cd9a]) by smtp.gmail.com with ESMTPSA id t21sm18791447pgi.87.2019.10.22.01.18.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Oct 2019 01:19:00 -0700 (PDT) From: Yasufumi Ogawa To: spp@dpdk.org, ferruh.yigit@intel.com, yasufum.o@gmail.com Date: Tue, 22 Oct 2019 17:18:56 +0900 Message-Id: <20191022081856.21489-1-yasufum.o@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [spp] [PATCH] spp_primary: fix buf overflow in result of patch X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spp-bounces@dpdk.org Sender: "spp" As `patch` command is added to spp_primary, it returns the result of the command. It is contained in variable `char port_set[32]` for containing a port formatted as "\"%s:%d\"", but the size is not enough for the result of patch "{\"src\":\"%s:%d\",\"dst\":\"%s:%d\"}". The name of `port_set` is not appropriate for the purpose. This update is to fix the issue by changing `port_set` to `port_uid` and add another one for patch with enough size 64byte as `char patch_set[64]`. Fixes: f511dd01fa4b ("spp_primary: add status for forwarder thread") Signed-off-by: Yasufumi Ogawa --- src/primary/main.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/primary/main.c b/src/primary/main.c index dbae424..fbc47c3 100644 --- a/src/primary/main.c +++ b/src/primary/main.c @@ -910,8 +910,9 @@ parse_command(char *str) int max_token = 0; uint16_t dev_id; char dev_name[RTE_DEV_NAME_MAX_LEN] = { 0 }; - char result[16] = { 0 }; /* succeeded or failed. */ - char port_set[32] = { 0 }; + char result[16] = { 0 }; /* "succeeded" or "failed". */ + char port_uid[20] = { 0 }; /* "\"%s:%d\"" */ + char patch_set[64] = { 0 }; /* "{\"src\":\"%s:%d\",\"dst\":...}" */ char *p_type; int p_id; @@ -994,12 +995,12 @@ parse_command(char *str) } else sprintf(result, "%s", "\"succeeded\""); - sprintf(port_set, "\"%s:%d\"", p_type, p_id); + sprintf(port_uid, "\"%s:%d\"", p_type, p_id); memset(str, '\0', MSG_SIZE); sprintf(str, "{%s:%s,%s:%s,%s:%s}", "\"result\"", result, "\"command\"", "\"add\"", - "\"port\"", port_set); + "\"port\"", port_uid); } else if (!strcmp(token_list[0], "del")) { RTE_LOG(DEBUG, PRIMARY, "Received del command\n"); @@ -1016,12 +1017,12 @@ parse_command(char *str) } else sprintf(result, "%s", "\"succeeded\""); - sprintf(port_set, "\"%s:%d\"", p_type, p_id); + sprintf(port_uid, "\"%s:%d\"", p_type, p_id); memset(str, '\0', MSG_SIZE); sprintf(str, "{%s:%s,%s:%s,%s:%s}", "\"result\"", result, "\"command\"", "\"del\"", - "\"port\"", port_set); + "\"port\"", port_uid); } else if (!strcmp(token_list[0], "patch")) { RTE_LOG(DEBUG, PRIMARY, "patch\n"); @@ -1088,7 +1089,7 @@ parse_command(char *str) sprintf(result, "%s", "\"failed\""); } - sprintf(port_set, + sprintf(patch_set, "{\"src\":\"%s:%d\",\"dst\":\"%s:%d\"}", in_p_type, in_p_id, out_p_type, out_p_id); @@ -1096,7 +1097,7 @@ parse_command(char *str) sprintf(str, "{%s:%s,%s:%s,%s:%s}", "\"result\"", result, "\"command\"", "\"patch\"", - "\"ports\"", port_set); + "\"ports\"", patch_set); ret = 0; } -- 2.17.1