From patchwork Wed Oct 2 11:44:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Damijan Skvarc X-Patchwork-Id: 1170610 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Wuf3axTu"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46jvSt3l4nz9sPc for ; Wed, 2 Oct 2019 21:45:01 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id C054EDDE; Wed, 2 Oct 2019 11:44:58 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id AC909DDD for ; Wed, 2 Oct 2019 11:44:57 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 2E1DB189 for ; Wed, 2 Oct 2019 11:44:57 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id q17so19278980wrx.10 for ; Wed, 02 Oct 2019 04:44:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=GFyFY7d8Go9xeEVKnt9q/7vR02Bw1w0AwiGf4/3QxFE=; b=Wuf3axTufu94Cy5ug61tSUi6MR01QJQntNR0YBDk2+1zWQkcSxHqInNWLPc1ZJVkLn FklXwAcxbuZh6+J2lz5649wLfCpOpMuhCXpnVH0hFaLYArOaR7nt0vbY+Y0XX2ra4R/E aYPP2ZSEKCgRFcG2hzB6z03SAKlpPmbsIFZ/lNF+WpJyPPEdRsJChZ/J7HNPapPXRsat T3XGka3yUM+JvNEY9aZ0xseFi3O49fdZLy/C0G+Z0K7PpLpJQZpwr0NPX/1uqIZ8FLx7 z6gYj0KYxu8Z6jihVV3huDUoaf/Xuo9RS8kzKjv0FlJYFvgUH12RiXwF0zRF65jhCTop KLPQ== 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; bh=GFyFY7d8Go9xeEVKnt9q/7vR02Bw1w0AwiGf4/3QxFE=; b=eB/jW+BHCi6Y111t+SDPOiiC/tZHv3wD8ak3lIYTd8jTgGW0jYFGLLT05kqPrDYYre T8LoirtVrWemVchyh6SVEszSYL6j4tEQhL6rBwqet/nRhluhEVtMNCnZbWbJ0d0ayj+T 8L7xt2MYWUTAwRfyMV2aGtfm7juuJR2cF2N5xgQ3pY7vrhukHd6O5wZ3AZSCydJ1Uv21 V56LK7eDancRcpHPtUFRbLRGj6L3viw2OQ7dl75inPxwA3D9V1qflU5LNmSeEcEpiX+W Tr6KX5Hd3of4QhGGzj+DxYQDSBsDl4Ze8sYDlpGoS9d22WYuO1SwrGr909qCufL/5ufo TFDA== X-Gm-Message-State: APjAAAUMVMHHcRLwBJ01wkMgsfFqzTANaaU0gsOqZTQTg/x73cqDeaqd z+apu5ellWqW2lwHiD9LzDzkm/TPvFc= X-Google-Smtp-Source: APXvYqy6CPCoJkFE0xuoyITj6Id3sETgkQ1k1wALIWSTvooY2mK9g85SLm4kSIk215i/m5UcudGkRA== X-Received: by 2002:adf:dc03:: with SMTP id t3mr2624093wri.27.1570016695194; Wed, 02 Oct 2019 04:44:55 -0700 (PDT) Received: from damijan-PC.i-tech.local (mail.i-tech.si. [89.212.78.105]) by smtp.gmail.com with ESMTPSA id d193sm8165608wmd.0.2019.10.02.04.44.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Oct 2019 04:44:54 -0700 (PDT) From: Damijan Skvarc To: dev@openvswitch.org Date: Wed, 2 Oct 2019 13:44:49 +0200 Message-Id: <1570016689-30777-1-git-send-email-damjan.skvarc@gmail.com> X-Mailer: git-send-email 2.7.4 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [PATCH 1/1] vlog: fix memory leak in vlog_set_log_file() function X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org memory leak happens in case previously closed log file was reopened again, for example: ovs-appctl vlog/close ovs-appctl vlog/reopen memory leak is reported by valgrind in a form: ==4463== 76 bytes in 1 blocks are definitely lost in loss record 322 of 344 ==4463== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4463== by 0x534314: xmalloc (util.c:138) ==4463== by 0x534384: xmemdup0 (util.c:168) ==4463== by 0x53ACB9: vlog_set_log_file (vlog.c:403) ==4463== by 0x53AEDC: vlog_reopen_log_file (vlog.c:434) ==4463== by 0x53AF22: vlog_unixctl_reopen (vlog.c:683) ==4463== by 0x533730: process_command (unixctl.c:308) ==4463== by 0x533730: run_connection (unixctl.c:342) ==4463== by 0x533730: unixctl_server_run (unixctl.c:393) ==4463== by 0x4073AE: main (ovs-vswitchd.c:128) Signed-off-by: Damijan Skvarc --- lib/vlog.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/vlog.c b/lib/vlog.c index 01cfdc5..278b01c 100644 --- a/lib/vlog.c +++ b/lib/vlog.c @@ -395,11 +395,14 @@ vlog_set_log_file(const char *file_name) /* Close old log file, if any, and install new one. */ ovs_mutex_lock(&log_file_mutex); if (log_fd >= 0) { - free(log_file_name); close(log_fd); async_append_destroy(log_writer); } + if (log_file_name) { + free(log_file_name); + } + log_file_name = xstrdup(new_log_file_name); log_fd = new_log_fd; if (log_async) {