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 3F871A04B1; Wed, 23 Sep 2020 10:06:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F1DE31D6F2; Wed, 23 Sep 2020 10:06:40 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by dpdk.org (Postfix) with ESMTP id 4B0931D613 for ; Wed, 23 Sep 2020 10:06:39 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600848398; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=I+NI2Rk9ypeUB1q9tZ10V2tZCbWDjQ7s4zoV49PvP/M=; b=WVSSASh8kYPc1ukov6J3RDtfsXor1h7PUsM5pe8G+GQEBsclADnUET9qTqq1aB3c8mpCmr WY+WXZKrkkQtFStqPeE1MsAv453Mg8g2dvE/0ronOVNhaZytZ1bs8vHXaW2e4mmkeMcOfd qWEtQ4xwXoQnjO+uHqtTIoDUhKrNVAQ= Received: from mail-vs1-f72.google.com (mail-vs1-f72.google.com [209.85.217.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-579-rL7rMuBENMuF7rqchgFRLA-1; Wed, 23 Sep 2020 04:06:36 -0400 X-MC-Unique: rL7rMuBENMuF7rqchgFRLA-1 Received: by mail-vs1-f72.google.com with SMTP id v67so5605181vsb.12 for ; Wed, 23 Sep 2020 01:06:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=I+NI2Rk9ypeUB1q9tZ10V2tZCbWDjQ7s4zoV49PvP/M=; b=gVDMg7OhSLeNgNReWePp5E5vAG5j4ePxH2JC3zPI0ROJDLIkOymLaMD6RTZnpW/HyY QOFfFTT70doGcGMLSTsqBy8Kz+Cmw7S4+C9n/3Q1UvBugfH5BwwvGYSl2ynhQUTBzBIO 3w7VUyAvaH8TORLWTZ0yMppUBtwiOv1IR59RvyTNhlYNjwnSel0Vc0v20O27Oz/kxJ3z GYF+2YR4mUBpeMYAKuYlJWIEEwTQDFgygvVJV6Y72fHgk5TY5MLIr3Cj9nFrA5ECPSYE cr1j7nGEM0j9LU7Sn0G1l3oj5pkl4D8HudlkMP7IBgqAFEVnVfXP871OPA2/Hz8qd95Z mggw== X-Gm-Message-State: AOAM533o8b8s5u082e77+ILg57H9HvBk5UYURvbK8jIoKut00CZsFTs3 odza5m9sl08JKwwyEnn89bLBoeG6KcpL2RgV0lk9K2qL7dDFK7UfHARzN/sI7LLHzwd/1Gx3muX KAyogqkxKqIFaRt2n4UA= X-Received: by 2002:a05:6102:10c2:: with SMTP id t2mr6092640vsr.10.1600848396335; Wed, 23 Sep 2020 01:06:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDdvA506HEGA26xUPfC6ggK1KR+rkVgewLY1jl76jSmNq3AJEcidnnc/aCx3tZFDxWcNtA5hzslKhmiiGx9FU= X-Received: by 2002:a05:6102:10c2:: with SMTP id t2mr6092633vsr.10.1600848396105; Wed, 23 Sep 2020 01:06:36 -0700 (PDT) MIME-Version: 1.0 References: <20200922172015.266698-1-kevin.laatz@intel.com> In-Reply-To: <20200922172015.266698-1-kevin.laatz@intel.com> From: David Marchand Date: Wed, 23 Sep 2020 10:06:25 +0200 Message-ID: To: Kevin Laatz Cc: dev , "Yigit, Ferruh" , Bruce Richardson , dpdk stable Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=dmarchan@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH] net/ring: fix unchecked return value X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Tue, Sep 22, 2020 at 7:25 PM Kevin Laatz wrote: > > Add a check for the return value of the sscanf call in > parse_internal_args(), returning an error if we don't get the expected > result. > > Coverity issue: 362049 > Fixes: 96cb19521147 ("net/ring: use EAL APIs in PMD specific API") > Cc: stable@dpdk.org > > Signed-off-by: Kevin Laatz > --- > drivers/net/ring/rte_eth_ring.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c > index 40fe1ca4ba..62060e46ce 100644 > --- a/drivers/net/ring/rte_eth_ring.c > +++ b/drivers/net/ring/rte_eth_ring.c > @@ -539,7 +539,8 @@ parse_internal_args(const char *key __rte_unused, const char *value, > struct ring_internal_args **internal_args = data; > void *args; > > - sscanf(value, "%p", &args); > + if (sscanf(value, "%p", &args) != 1) > + return -1; Not sure this really needs fixing, as I understood the internal option is something only the driver uses. On the patch itself, sscanf stops at the first character it deems incorrect, meaning that you would not detect trailing chars, like for 0x1234Z. You can detect this by adding a canary. $ cat sscanf.c #include int main(int argc, char *argv[]) { void *args; char c; if (sscanf(argv[1], "%p", &args) != 1) printf("'%%p' KO for %s\n", argv[1]); else printf("'%%p' ok for %s\n", argv[1]); if (sscanf(argv[1], "%p%c", &args, &c) != 1) printf("'%%p%%c' KO for %s\n", argv[1]); else printf("'%%p%%c' ok for %s\n", argv[1]); return 0; } $ gcc -o sscanf -Wall -Werror sscanf.c $ ./sscanf 0x1234 '%p' ok for 0x1234 '%p%c' ok for 0x1234 $ ./sscanf 0x1234Z '%p' ok for 0x1234Z '%p%c' KO for 0x1234Z -- David Marchand