From patchwork Sun Jun 5 23:59:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dominique Martinet X-Patchwork-Id: 1639069 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20210112 header.b=X31MI3aB; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2001:4860:4864:20::39; helo=mail-oa1-x39.google.com; envelope-from=swupdate+bncbcwivbv7sugrbbuh6wkamgqegztn5cq@googlegroups.com; receiver=) Received: from mail-oa1-x39.google.com (mail-oa1-x39.google.com [IPv6:2001:4860:4864:20::39]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LGYXG1gtCz9s0r for ; Mon, 6 Jun 2022 10:00:12 +1000 (AEST) Received: by mail-oa1-x39.google.com with SMTP id 586e51a60fabf-f313416010sf7529940fac.2 for ; Sun, 05 Jun 2022 17:00:12 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1654473606; cv=pass; d=google.com; s=arc-20160816; b=lqGqKZc/jBgcBEriJT9sKhmRPQm02iJ416uPAPoeFftnTqwygemL5kTT0xKcHQCEzM zOfjeQUukvMMbB128vjG13TMeXLaSBzD+kD1Abz19+UDYXI1bAduWCQsdLgIXmpJfYDE VO9ate2JM/9htbuaORoyTbZdRTW7nQnYTb6z1VZAaokBqVhgOMZCzJbgaDtNTPn8Sbku q6c9rk4ap3cw/ahMC4LcfHhBEviyBrLFBF8zuuV4txLLi0SKMuWxsZ9W2DQyE6Kezoe/ MHWRxZuBwSZyBhWIJ9OZ1iEXzyjVkX2swbE8pe9rDvgT83x4U5s+dJ/e/YMrARTuJsgY so0w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=3hqRP/e94RjftrlLtQR3aOqtSsLJFa/21WnQFM/Rn4U=; b=WJdYaOgb3FkbMiQqWgqtUAQwdYbf+JHMVaGnB5QsCf/fP0Se0hVL9YN/dqhULKsAyw Bc6Eq0FYEH/eD6KGz1yN/g58trpEO9ZFwVfjeN7nKEcanmFDHvIMQSITwmdjMl+XkgDt SA5s8jsAfdG4/XS3M3WVHDPvLWVZ0tpa5LDC+Z4B0Vn8BH+wCp4wpD82y+uxLux1C/mu vCfpHEcPTWSuK0enuK64v+NbnSVcACoWLDCEhsU7Z3sJ9c8EwUC2ldzPgTg0smgDg/Nl dJlzefaBCZrrwav9H5ROe4y0DQWRmMkqDb3q1Cb+2AfW/J0IYAbj/TBjHhE0yQx2msT+ k9Jg== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=3hqRP/e94RjftrlLtQR3aOqtSsLJFa/21WnQFM/Rn4U=; b=X31MI3aB2x25s1wF4xFjZGBcydmIFUNIHP8JWuW8WetVvJeTOx9PXArj2RqpbKCxci dSCM1X1E+WP40fBV8rBhMHQW5bwlM/PLC2GwxMickwS1NGW7qpCVcWqPusqM8+hzCvBH qe7j8Glp9z9eFEO+oya1WBb+b7XxkwDTvc+qsNqtDQCwbGl/wD1Q93ynZaNqESgByGEB JCpmsIiE6juB+tUpHuLJubROr9DkbE75EIQlAI83vTRNR20sMskvdlwqrZa2Fy8B3AoS YcVaZxJcrk3sPMaWsT2YbLZPXkfvw4qHYnSAWhh0Iuuw37v4R672SFbJEQW2eaF/KdBt PPSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=sender:x-gm-message-state:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=3hqRP/e94RjftrlLtQR3aOqtSsLJFa/21WnQFM/Rn4U=; b=Dqx6Yk8fJGRcyDdU/t2NzVROx23LnGPWUsOJu+wzzAOu9IAoxbVnc3wIraCbIStbRx 9hLyKtuJb5ZBLfEqTBGAxK0Vvl+TqNIyycxO0hP0c45nKHObmZpJgEJzP3/YddoIqrji 1/kNY7E/nQHc3ZCbFUHDJQ9g/NwCiy/OhxA0CG2Nz4Y+H5+SNR5afdipf38YHsaWs6Dw MJPBc6GcQac3NV9Vhvp1YuOqH5BPGP4po1DoJB7LLQmDChJxnG45mXrALr42NdiVzOgu 8hITzSMsK6NuE7GRHBHLRkpPFsI00/Y9ZT7tqseiAxUNwudsA8MY+xZRxtRobQq8ejOC KXbw== Sender: swupdate@googlegroups.com X-Gm-Message-State: AOAM531Lbgdpv5OhARoqxztEL1lBz1iSC3vwi9o4p8LJfsW33qAkmike 1tOQCujeNhhe6OGusiIr3Tk= X-Google-Smtp-Source: ABdhPJxAqQTSAA7e3w1ryVJ50MMSlVvyP13MO9YC+RWvp8yJIfCG4Zgx9ALVqbLhDMcD7MnWWVtBrg== X-Received: by 2002:a9d:37e4:0:b0:60b:b346:73d6 with SMTP id x91-20020a9d37e4000000b0060bb34673d6mr8922808otb.222.1654473606272; Sun, 05 Jun 2022 17:00:06 -0700 (PDT) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a05:6808:1410:b0:32b:a10c:420d with SMTP id w16-20020a056808141000b0032ba10c420dls3370479oiv.6.gmail; Sun, 05 Jun 2022 17:00:05 -0700 (PDT) X-Received: by 2002:a05:6808:171a:b0:2f9:ac95:fc5b with SMTP id bc26-20020a056808171a00b002f9ac95fc5bmr12474647oib.191.1654473605835; Sun, 05 Jun 2022 17:00:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654473605; cv=none; d=google.com; s=arc-20160816; b=GgPID0k0rH4qkEZG/sXNRcolsnEwZYUxn43LRfJU/TddR7OOEgRbuXMq2ovqD630PX +82XYUhABXICgUfYwTa/2//UihL2sA+0u27OmqglwbDOIM0iYnkdJV3o8Xx26K7D3bOD a5nqaM/WI9S9ykTqkDLrqx0dO6nW0gEG7mO1tTxzhHQvjeWhTe8T0tslFmkLKdHbieiF 4wgeIVdwvcKQrQL5s5ec+TARXReewM7N23oPZPRE5zzn8RqERVZwP/gr8ehQF2PuvGUo ls+S02UwU5SLNadbvG/h5p+Gt620kpHCcp5xv4LdyAUntz4iErndUI+A5n9zJB8jaf3O F90w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=4ZCi4Rh61+aGQVzpfNeUqePy3eNXSr6CpZR7UxAqPHw=; b=l7I0DgUJv+EbndPaEc5lXeophPcCjO7LX/WuMXzky5B7HaDuuQ3KCVODV1T7Xofi5r d8OR2HE/uEiM2tvNOqPi8LpohRacRgOG0rODCqu3dbqnY++W15Wph/RfKDTXhe6UwS9V Aa7HZ3U4xYqhY7N+3u3FNLBxC3Q46pDm78UHo+l3UKOQQam5Sab0Awd9ymtyWGrnaZeV NpJCyJ6o0clQ6fCx9+/85I96mh2BzS3wUXgOwKNYdf4jLwAsMI0BwCUBGDPMLszlEWhk 24tsKiFUEc1CmcKGsAhtnzeJeYdLiylCT38DP4krcW5vXompFkwwF9+CnDLTHhKjV6Ir Fo3w== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com Received: from gw2.atmark-techno.com (gw2.atmark-techno.com. [35.74.137.57]) by gmr-mx.google.com with ESMTP id bp22-20020a056820199600b0041b56f59adasi229846oob.0.2022.06.05.17.00.05 for ; Sun, 05 Jun 2022 17:00:05 -0700 (PDT) Received-SPF: pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) client-ip=35.74.137.57; Received: from gw2.atmark-techno.com (localhost [127.0.0.1]) by gw2.atmark-techno.com (Postfix) with ESMTP id B7C3120CAA for ; Mon, 6 Jun 2022 09:00:03 +0900 (JST) Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by gw2.atmark-techno.com (Postfix) with ESMTPS id 1038020CAA for ; Mon, 6 Jun 2022 09:00:01 +0900 (JST) Received: by mail-pj1-f70.google.com with SMTP id c11-20020a17090a4d0b00b001e4e081d525so8522178pjg.7 for ; Sun, 05 Jun 2022 17:00:01 -0700 (PDT) X-Received: by 2002:a17:90a:d0f:b0:1e0:bd6d:633a with SMTP id t15-20020a17090a0d0f00b001e0bd6d633amr59024369pja.2.1654473600951; Sun, 05 Jun 2022 17:00:00 -0700 (PDT) X-Received: by 2002:a17:90a:d0f:b0:1e0:bd6d:633a with SMTP id t15-20020a17090a0d0f00b001e0bd6d633amr59024356pja.2.1654473600744; Sun, 05 Jun 2022 17:00:00 -0700 (PDT) Received: from pc-0115 (162.198.187.35.bc.googleusercontent.com. [35.187.198.162]) by smtp.gmail.com with ESMTPSA id c140-20020a624e92000000b005182e39038csm6793729pfb.38.2022.06.05.16.59.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 05 Jun 2022 17:00:00 -0700 (PDT) Received: from martinet by pc-0115 with local (Exim 4.95) (envelope-from ) id 1ny0A2-005RBO-Ft; Mon, 06 Jun 2022 08:59:58 +0900 From: Dominique Martinet To: swupdate@googlegroups.com Cc: Dominique Martinet Subject: [swupdate] [PATCH] parse_json: check json_object_put frees the object Date: Mon, 6 Jun 2022 08:59:55 +0900 Message-Id: <20220605235955.1296104-1-dominique.martinet@atmark-techno.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <629cafd4d3db2_22d5562aca1bc4d99c1696b@prd-scan-dashboard-0.mail> References: <629cafd4d3db2_22d5562aca1bc4d99c1696b@prd-scan-dashboard-0.mail> MIME-Version: 1.0 X-Original-Sender: dominique.martinet@atmark-techno.com X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of dominique.martinet@atmark-techno.com designates 35.74.137.57 as permitted sender) smtp.mailfrom=dominique.martinet@atmark-techno.com Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , coverity detected that we always check json_object_put return value, so check here as well. In practice, wrong return value here means we've leaked some memory so output a warning and continue. Tested with a single-script json example Signed-off-by: Dominique Martinet --- parser/parser.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/parser/parser.c b/parser/parser.c index 49c531d32c19..d720de22a78c 100644 --- a/parser/parser.c +++ b/parser/parser.c @@ -995,6 +995,9 @@ int parse_cfg (struct swupdate_cfg __attribute__ ((__unused__)) *swcfg, #endif #ifdef CONFIG_JSON + +#define JSON_OBJECT_FREED 1 + int parse_json(struct swupdate_cfg *swcfg, const char *filename) { int fd, ret; @@ -1048,7 +1051,9 @@ int parse_json(struct swupdate_cfg *swcfg, const char *filename) ret = parser(p, cfg, swcfg); - json_object_put(cfg); + if (json_object_put(cfg) != JSON_OBJECT_FREED) { + WARN("Leaking cfg json object"); + } free(string);