From nobody Thu Apr 18 17:45:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1565340562; cv=none; d=zoho.com; s=zohoarc; b=kASMi0mKAarC+XY4lN1MTsE3d+Rq/6PFoJFIvB+DXvnUlV/CaUBkZ43oWAUYkpFiMoJMQ88jc1tQ4odEVhYh3Qg2RCL5/f3ATFQz+zVPOgdXiZQoAe+rM9y8FI5/qkPN1s6vBCcMGkk5vi61AtTp9No7cR3ayvqchJwUrxHGoiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565340562; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=UizWwOdB8j2W+t6H2JriLz2c75rj/VBFpEri0pwzE/k=; b=Eh/tBhCE5su4+lEF85koAGPZIczslF62o+zccK4l0Y2inwzpMTxrbrijdjeyDaokvxzv6uhU+wwxitXQNMRPztSFsiJoJKGCe5ScIQ+tlKKkXtPRf7ifIs8CmYoTe2Svz4WgZoN0Kl8CtPKnqnRE5KKfYf5e/WU0wEUbYJu030E= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1565340562229392.0489255450342; Fri, 9 Aug 2019 01:49:22 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E0532300C768; Fri, 9 Aug 2019 08:49:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BDFE75D772; Fri, 9 Aug 2019 08:49:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3D38E24F32; Fri, 9 Aug 2019 08:49:20 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x798nIVU014336 for ; Fri, 9 Aug 2019 04:49:18 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8880C5D9DC; Fri, 9 Aug 2019 08:49:18 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.2.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 141225D9D6 for ; Fri, 9 Aug 2019 08:49:17 +0000 (UTC) From: Michal Privoznik To: libvir-list@redhat.com Date: Fri, 9 Aug 2019 10:49:09 +0200 Message-Id: <3237384c22d9b3dd24aecf23bb15db06d0b2b2c9.1565340411.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/3] nss: Don't stop parsing on unexpected key X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Fri, 09 Aug 2019 08:49:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Due to latest rewrite of NSS module, we are doing yajl parsing ourselves. This means, we had to introduce couple of callback that yajl calls. According to its documentation, a callback can cancel parsing if it returns a zero value. Well, we do just that in the string callback (findLeasesParserString()). If the JSON file we are parsing contains a key that we are not interested in, zero is returned meaning stop all parsing. This is not correct, because the JSON file can contain some other keys which are not harmful for our address translation (e.g. 'client-id'). Signed-off-by: Michal Privoznik Reviewed-by: Daniel P. Berrang=C3=A9 --- tests/nssdata/virbr1.status | 1 + tools/nss/libvirt_nss_leases.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/nssdata/virbr1.status b/tests/nssdata/virbr1.status index 4951d4513e..f73c478be0 100644 --- a/tests/nssdata/virbr1.status +++ b/tests/nssdata/virbr1.status @@ -20,6 +20,7 @@ { "ip-address": "192.168.122.3", "mac-address": "52:54:00:aa:bb:cc", + "client-id": "01:52:54:00:aa:bb:cc", "expiry-time": 2000000000 } ] diff --git a/tools/nss/libvirt_nss_leases.c b/tools/nss/libvirt_nss_leases.c index 86881641a9..577b5a2fd1 100644 --- a/tools/nss/libvirt_nss_leases.c +++ b/tools/nss/libvirt_nss_leases.c @@ -201,7 +201,7 @@ findLeasesParserString(void *ctx, if (!(parser->entry.hostname =3D strndup((char *)stringVal, st= ringLen))) return 0; } else { - return 0; + return 1; } } else { return 0; --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu Apr 18 17:45:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1565340570; cv=none; d=zoho.com; s=zohoarc; b=WJT01QHg3WJn34bfxLDYLymCoPj8YGJP1Dg75CsDMBnXiTEBtWakrE5yzcuWluLoeL7nyDnmtf/czG8JqCjYhvUC082VjqNJWXFpKQmFkRXHaxQS7Nsdc66SpaLJ7bwaZSxW5g4h2PZnf62f86GMS6mYtfezSBDTLBBDckLHdQI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565340570; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=cpTcmLgHEvghoZI2hIMq3oX5qQFowLg/NJtQC8ZUqIU=; b=gsPhUypp9sIS+/zSQFwRsi1juHgfflBw2MwW3eVS5ZW0qwPEOpsCkmVKoQfvshg0TI9Wc50KquTWjFtvDU08UznLyaGcdXIft+ZcITXdCtPYwX0gsNjtmJJzWv3K+BwxX4Sf0w8MehpD2jol3JosAyQxrJ1BujEQV2KGTFlIpn4= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 156534057036893.40929675253562; Fri, 9 Aug 2019 01:49:30 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E3945309BF21; Fri, 9 Aug 2019 08:49:28 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7404160605; Fri, 9 Aug 2019 08:49:28 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 3718C180B536; Fri, 9 Aug 2019 08:49:28 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x798nJZQ014346 for ; Fri, 9 Aug 2019 04:49:19 -0400 Received: by smtp.corp.redhat.com (Postfix) id 538055D9DC; Fri, 9 Aug 2019 08:49:19 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.2.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id D35755D9D6 for ; Fri, 9 Aug 2019 08:49:18 +0000 (UTC) From: Michal Privoznik To: libvir-list@redhat.com Date: Fri, 9 Aug 2019 10:49:10 +0200 Message-Id: <7dabd12d0ef2f361c8f9cc428105b6e37d6a050c.1565340411.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/3] nss: Include stdio.h and define NULLSTR when debugging is enabled X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Fri, 09 Aug 2019 08:49:29 +0000 (UTC) Content-Type: text/plain; charset="utf-8" The NSS module has a compile time option which when enabled makes ERROR() and DEBUG() print messages onto stderr. But now that the module no longer links with libvirt, we need to include stdio.h and define NULLSTR(). Signed-off-by: Michal Privoznik Reviewed-by: Daniel P. Berrang=C3=A9 --- tools/nss/libvirt_nss.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/nss/libvirt_nss.h b/tools/nss/libvirt_nss.h index 63e1bf0af5..ee6c971d3d 100644 --- a/tools/nss/libvirt_nss.h +++ b/tools/nss/libvirt_nss.h @@ -33,6 +33,8 @@ =20 #if 0 # include +# include +# define NULLSTR(s) ((s) ? (s) : "") # define ERROR(...) \ do { \ char ebuf[1024]; \ --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Thu Apr 18 17:45:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1565340564; cv=none; d=zoho.com; s=zohoarc; b=dytt24TL1FO2OEG4ktLV0fHk+iWm7NLndzz060Ph3OcbTtVM0VupwrNd53R3LOdhjIsRHxehJKi8AxRmCy5GpfAeQReMTCoZWCwIbLc1TBk3tbJzHDAeYpnUoesQpNz8F4b1SmpeWAm05cE9+DgliVpW1hVXpGWLQE9F/h8o8SI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565340564; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=EAlEtKi26Dag32H23QEyby6BsYEb1JLTPg/Y48aF4uk=; b=bEpq4f5id4l2PMNCmhF3S4aIo3Mu9+RO8e4t/UsC/Xoloikv4fyzZfSNGpaYjgAupBOBnlCiokvDBgQPzgI7aGfnnpBJw5zooS2ciJS+jur8TXEmcHN69793X8JMIf4XWod2UCXnfsVOaxYHIHTfdAqp25ZquSdMvt/bKIIdMgQ= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1565340564792153.31975776346053; Fri, 9 Aug 2019 01:49:24 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B2867821CB; Fri, 9 Aug 2019 08:49:23 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8F58F1000182; Fri, 9 Aug 2019 08:49:23 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 1FF20180B536; Fri, 9 Aug 2019 08:49:23 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x798nKZT014351 for ; Fri, 9 Aug 2019 04:49:20 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1EC155D9E1; Fri, 9 Aug 2019 08:49:20 +0000 (UTC) Received: from moe.brq.redhat.com (unknown [10.43.2.30]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9EA5B5D9D6 for ; Fri, 9 Aug 2019 08:49:19 +0000 (UTC) From: Michal Privoznik To: libvir-list@redhat.com Date: Fri, 9 Aug 2019 10:49:11 +0200 Message-Id: <8c394c1236b25737d5535b9a1cba86b60a9dc3b1.1565340411.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/3] nss: Don't leak memory on parse error X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 09 Aug 2019 08:49:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" If yajl_parse() fails, we try to print an error message. For that, yajl_get_error() is used. However, its documentation say that caller is also responsible for freeing the memory it allocates by using yajl_free_error(). Signed-off-by: Michal Privoznik Reviewed-by: Daniel P. Berrang=C3=A9 --- tools/nss/libvirt_nss_leases.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/nss/libvirt_nss_leases.c b/tools/nss/libvirt_nss_leases.c index 577b5a2fd1..977e3415f7 100644 --- a/tools/nss/libvirt_nss_leases.c +++ b/tools/nss/libvirt_nss_leases.c @@ -399,9 +399,10 @@ findLeases(const char *file, =20 if (yajl_parse(parser, (const unsigned char *)line, rv) !=3D yajl_status_ok) { - ERROR("Parse failed %s", - yajl_get_error(parser, 1, - (const unsigned char*)line, rv)); + unsigned char *err =3D yajl_get_error(parser, 1, + (const unsigned char*)line= , rv); + ERROR("Parse failed %s", (const char *) err); + yajl_free_error(parser, err); goto cleanup; } } --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list