From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC7DEC169C4 for ; Wed, 6 Feb 2019 18:44:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6BD1220663 for ; Wed, 6 Feb 2019 18:44:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=networkplumber-org.20150623.gappssmtp.com header.i=@networkplumber-org.20150623.gappssmtp.com header.b="pWCR6RcN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726782AbfBFSog (ORCPT ); Wed, 6 Feb 2019 13:44:36 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:44945 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725928AbfBFSof (ORCPT ); Wed, 6 Feb 2019 13:44:35 -0500 Received: by mail-pl1-f196.google.com with SMTP id p4so3478163plq.11 for ; Wed, 06 Feb 2019 10:44:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=KVNZqzpV824X7HZl6q5hkE9/3R0+Np0ZXL8AefJRF50=; b=pWCR6RcNOsDJYU0FhDPBjXR3FuLQ09MmwMmp1chx2BPXDjKLaVLGHYZHuV07C4tVMU AGiY2wiT2tDkxsIBYtQ47OoVotxGCpk10Nqfh047STlbwMpEa5eQzXH1GZ7qgTUBFBPn lduYvvWLhQprGkvQbwOj3oA/vSJN9WzkqwoahZHtYuMNWYHFGZoxL87FUstSmx6AKZzt bFWMu+BvuPS/6QNAUCFzM7BdSBbwjqTWXkUQsCWGcYiB5/2oBJ4oRq7sgc656pb5/nen dJf26gkNCqtsvXjCoOvEedxu8uA1nAO8zU7pFWzG1yXtY8ycL5kWZ3AzS5JkGmat7GW9 U9rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=KVNZqzpV824X7HZl6q5hkE9/3R0+Np0ZXL8AefJRF50=; b=QgScBB5369HnudQm2+w23WNyde6qy1ksvHjLrkAo41ZoeKVCak0SiK/TrpVRyVrQDz mgfBgw2/Weeot26G5vdw2hyLvB9oDpL0mii6q2h+KiMlub1/gdjOeZeNaP7pHheS+yiG T2ZJ27pFqOnkp+Jj6kUmLFhniXMrMZ+hlRTu4FrxN/zlG0oc9nPLVaz7kHNGiS2ODyzB AJ+wEzdrpERGAetwOPUZ6uEDryUYxmHXh7Ex+H6sLex8j2EsTfgLaXFnLgPnqoz7Ekb6 PaxkntQXvzDgE2zopcfKzpoHf3S1JWiEldChznZXPLBHg46E1zVJqGVg60uQFZwLGDYJ ovSA== X-Gm-Message-State: AHQUAuYNGGtotEZzhejYkxPKal+luSevQmreCRS9CTq5bbO1zwZXiATD XViR1SDEBE9umZKXNe2lizyUYQk5AZk= X-Google-Smtp-Source: AHgI3IY5uf7nYk6054VX93o9UUHb+5RtLatsDm3zkASxT6r8H9pqCwRvsz7YSIaJTEu3TxH/QTCaNg== X-Received: by 2002:a17:902:9887:: with SMTP id s7mr11843637plp.199.1549478674699; Wed, 06 Feb 2019 10:44:34 -0800 (PST) Received: from hermes.lan (204-195-22-127.wavecable.com. [204.195.22.127]) by smtp.gmail.com with ESMTPSA id o189sm10640861pfg.117.2019.02.06.10.44.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Feb 2019 10:44:33 -0800 (PST) From: Stephen Hemminger To: netdev@vger.kernel.org Cc: Stephen Hemminger Subject: [PATCH iproute2] tc: fix memory leak in error path Date: Wed, 6 Feb 2019 10:44:08 -0800 Message-Id: <20190206184407.17300-1-stephen@networkplumber.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org If value passed to parse_percent was not valid, it would leak the dynamic allocation from sscanf. Fixes: 927e3cfb52b5 ("tc: B.W limits can now be specified in %.") Signed-off-by: Stephen Hemminger --- tc/tc_util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tc/tc_util.c b/tc/tc_util.c index ab717890bb2a..1377b536e72f 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -195,7 +195,7 @@ static int parse_percent_rate(char *rate, const char *str, const char *dev) long dev_mbit; int ret; double perc, rate_mbit; - char *str_perc; + char *str_perc = NULL; if (!dev[0]) { fprintf(stderr, "No device specified; specify device to rate limit by percentage\n"); @@ -230,6 +230,7 @@ static int parse_percent_rate(char *rate, const char *str, const char *dev) return 0; malf: + free(str_perc); fprintf(stderr, "Specified rate value could not be read or is malformed\n"); return -1; } -- 2.20.1