Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v3WiF-0001xI-Af for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Sep 2025 09:31:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v3WiD-0085Ob-BQ for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Sep 2025 09:31:58 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v3WhJ-0082B3-ML for pgsql-hackers@lists.postgresql.org; Tue, 30 Sep 2025 09:31:02 +0000 Received: from fout-a4-smtp.messagingengine.com ([103.168.172.147]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1v3WhH-000rvY-1W for pgsql-hackers@lists.postgresql.org; Tue, 30 Sep 2025 09:31:02 +0000 Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id B440BEC0246; Tue, 30 Sep 2025 05:30:57 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Tue, 30 Sep 2025 05:30:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=burd.me; h=cc:cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1759224657; x=1759311057; bh=/DwyFrh2s+ 5bxZTwKYac8LzOvFtmKDTHt6yzJcZhWdQ=; b=3Jtsm9o8w5x6pAdeVIYRZYx0C7 rddvWe3zScpsXh9/rqgw6BpxsJu9yIQR16y2WaLLObz431V6FAQZLwuX/j5ayEMU RXzAZQvntbFjDo2RISYpVVXMazhvy92ZWpZvUR/DC2eg1A/ehXPHmASVKacMrhqc 5E7eL3x2jT82ucTN/lRwyEsCgnyFiAgu34/A/WBeKGvKjPSyfRZeRHIxOUlZjj/B kN0N/3zRgZV21ATVmLMyh80may2MUpPZ1cLPT6O5iKJyXan3oanOTZwEYeHPMtmn d9oTNDqzVTdOCOTrLNN72ESfhbp8ZZHrdV/6qTEbBoatC/rwjMWEHAroaDAg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1759224657; x=1759311057; bh=/DwyFrh2s+5bxZTwKYac8LzOvFtmKDTHt6y zJcZhWdQ=; b=IuBRBn85Ot+ThpQd6R/JZh7sfyCsmTWyj87M2+zI0VPJsSxTpE+ hHMU2UAUcMXDxFcIseDqsvH6OmSfee7bkx1xmY+IJJtebCLda1sWLkkKY5/Q+Ilo DGU6UKZGMfxgZ48XUuG1bDgmX+LqvEefZ58181gq7LdxLwPV7AfjYmp5xqVtZOgG syczVc20x2Bsskix3rYZPfFDyqZDu6wSygxb9G9Rl3wGuBXxMF6/DZCMIX3W5yOZ bCAgwShbuoTfC1R/Bg9zGee5GG6A7P8Lkq7Tv5wrJRoyJBI4+4S8Bma2YnSROeyU 2I4iGPEYMHkX91EO06Kll2ThxlUY0b7icKg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggdektdehvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpeffhffvvefkjghfuffogggtsehmtdhmreertdejnecuhfhrohhmpefirhgvghcuuehu rhguuceoghhrvghgsegsuhhrugdrmhgvqeenucggtffrrghtthgvrhhnpeefvdfhudelud evveegheeuhfdtuedvueeiveegieejkefggfevhfekkefhtdekheenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehgrhgvghessghurhgurdhmvg dpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepmhhi tghhrggvlhesphgrqhhuihgvrhdrgiihiidprhgtphhtthhopegughhrohiflhgvhihmlh esghhmrghilhdrtghomhdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehlihhs thhsrdhpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: i675e48f3:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 30 Sep 2025 05:30:57 -0400 (EDT) Date: Tue, 30 Sep 2025 05:30:51 -0400 From: Greg Burd To: Michael Paquier , David Rowley Cc: PostgreSQL Hackers Message-ID: <48833E2B-C6E4-4C3D-A002-87234AF9782F@greg.burd.me> In-Reply-To: References: Subject: Re: [PATCH] Add tests for Bitmapset X-Mailer: Mailspring MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="68dba34b_59bd7940_147c" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --68dba34b_59bd7940_147c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sep 29 2025, at 8:51 pm, Michael Paquier wrote: > On Tue, Sep 30, 2025 at 01:19:05PM +1300, David Rowley wrote: >> NULL is a valid Bitmapset, so I don't really see the need to check for >> an empty set before calling bms_free(). If those were removed, then >> you'd not have to care about the coverage of that line. Good point, I agree. Thanks for reporting/reviewing David. > Yeah, we could just remove them as you are suggesting, as well. > -- > Michael Thank you both, patch attached. best. -greg --68dba34b_59bd7940_147c Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?utf-8?Q?v1-0001-Don-t-check-for-NULL-before-calling-bms=5Ffree-in-t.patch?=" RnJvbSA4YzhmYzhjN2RjMWUwYzc3NTJjMzVhMzMwNDRmMTA3NTQwZjk0ZTYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHcmVnIEJ1cmQgPGdyZWdAYnVyZC5tZT4KRGF0ZTogVHVlLCAz MCBTZXAgMjAyNSAwNToxNTo0MCAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggdjFdIERvbid0IGNoZWNr IGZvciBOVUxMIGJlZm9yZSBjYWxsaW5nIGJtc19mcmVlKCkgaW4gdGVzdHMKClRoZSBibXNfZnJl ZSgpIGZ1bmN0aW9uIHNhZmVseSBoYW5kbGVzIE5VTEwgaW5wdXQsIHNvIGNoZWNraW5nIGZvciBO VUxMCmJlZm9yZSBjYWxsaW5nIGl0IGlzIHVubmVjZXNzYXJ5LiBTaW5jZSB0ZXN0cyBzZXJ2ZSBh cyByZWZlcmVuY2UgZXhhbXBsZXMKZm9yIHByb3BlciBBUEkgdXNhZ2UsIHRoZXkgc2hvdWxkIGRl bW9uc3RyYXRlIHRoZSBjb3JyZWN0IGNhbGxpbmcgcGF0dGVybgp3aXRob3V0IHJlZHVuZGFudCBO VUxMIGNoZWNrcy4KCkF1dGhvcjogR3JlZyBCdXJkIDxncmVnQGJ1cmQubWU+ClJlcG9ydGVkLWJ5 OiBEYXZpZCBSb3dsZXk8ZGdyb3dsZXltbEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWVs IFBhcXVpZXIgPG1pY2hhZWxAcGFxdWllci54eXo+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdy LmVzL20vN0JEMUFCREItQjAzQS00NjRBLTlCQTktQTczQjU1QUQ4QTFGQGdldG1haWxzcHJpbmcu Y29tCi0tLQogLi4uL21vZHVsZXMvdGVzdF9iaXRtYXBzZXQvdGVzdF9iaXRtYXBzZXQuYyAgIHwg MTIxICsrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyks IDgxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9iaXRt YXBzZXQvdGVzdF9iaXRtYXBzZXQuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9iaXRtYXBzZXQv dGVzdF9iaXRtYXBzZXQuYwppbmRleCAyZTgyMTMyMDgzNi4uN2E3MDY2NjJlOWYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9iaXRtYXBzZXQvdGVzdF9iaXRtYXBzZXQuYworKysg Yi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfYml0bWFwc2V0L3Rlc3RfYml0bWFwc2V0LmMKQEAgLTEw OSw4ICsxMDksNyBAQCB0ZXN0X2Jtc19hZGRfbWVtYmVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJYm1z ID0gYm1zX2FkZF9tZW1iZXIoYm1zLCBtZW1iZXIpOwogCXJlc3VsdCA9IEJJVE1BUFNFVF9UT19U RVhUKGJtcyk7CiAKLQlpZiAoYm1zKQotCQlibXNfZnJlZShibXMpOworCWJtc19mcmVlKGJtcyk7 CiAKIAlQR19SRVRVUk5fVEVYVF9QKHJlc3VsdCk7CiB9CkBAIC0xMzEsOCArMTMwLDcgQEAgdGVz dF9ibXNfYWRkX21lbWJlcnMoUEdfRlVOQ1RJT05fQVJHUykKIAkvKiBJTVBPUlRBTlQ6IGJtc19h ZGRfbWVtYmVycyBtb2RpZmllcy9mcmVlcyB0aGUgZmlyc3QgYXJndW1lbnQgKi8KIAlibXMxID0g Ym1zX2FkZF9tZW1iZXJzKGJtczEsIGJtczIpOwogCi0JaWYgKGJtczIpCi0JCWJtc19mcmVlKGJt czIpOworCWJtc19mcmVlKGJtczIpOwogCiAJcmVzdWx0ID0gQklUTUFQU0VUX1RPX1RFWFQoYm1z MSk7CiAJYm1zX2ZyZWUoYm1zMSk7CkBAIC0xODEsOCArMTc5LDcgQEAgdGVzdF9ibXNfaXNfbWVt YmVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJbWVtYmVyID0gUEdfR0VUQVJHX0lOVDMyKDEpOwogCXJl c3VsdCA9IGJtc19pc19tZW1iZXIobWVtYmVyLCBibXMpOwogCi0JaWYgKGJtcykKLQkJYm1zX2Zy ZWUoYm1zKTsKKwlibXNfZnJlZShibXMpOwogCiAJUEdfUkVUVVJOX0JPT0wocmVzdWx0KTsKIH0K QEAgLTE5OCw4ICsxOTUsNyBAQCB0ZXN0X2Jtc19udW1fbWVtYmVycyhQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gYm1zX251bV9tZW1iZXJzKGJtcyk7CiAKLQlpZiAoYm1zKQotCQlibXNf ZnJlZShibXMpOworCWJtc19mcmVlKGJtcyk7CiAKIAlQR19SRVRVUk5fSU5UMzIocmVzdWx0KTsK IH0KQEAgLTIzOSwxMCArMjM1LDggQEAgdGVzdF9ibXNfY29weShQR19GVU5DVElPTl9BUkdTKQog CWNvcHlfYm1zID0gYm1zX2NvcHkoYm1zKTsKIAlyZXN1bHQgPSBCSVRNQVBTRVRfVE9fVEVYVChj b3B5X2Jtcyk7CiAKLQlpZiAoYm1zKQotCQlibXNfZnJlZShibXMpOwotCWlmIChjb3B5X2JtcykK LQkJYm1zX2ZyZWUoY29weV9ibXMpOworCWJtc19mcmVlKGJtcyk7CisJYm1zX2ZyZWUoY29weV9i bXMpOwogCiAJUEdfUkVUVVJOX1RFWFRfUChyZXN1bHQpOwogfQpAQCAtMjYyLDEwICsyNTYsOCBA QCB0ZXN0X2Jtc19lcXVhbChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYm1zX2VxdWFs KGJtczEsIGJtczIpOwogCi0JaWYgKGJtczEpCi0JCWJtc19mcmVlKGJtczEpOwotCWlmIChibXMy KQotCQlibXNfZnJlZShibXMyKTsKKwlibXNfZnJlZShibXMxKTsKKwlibXNfZnJlZShibXMyKTsK IAogCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7CiB9CkBAIC0yODYsMTAgKzI3OCw4IEBAIHRlc3Rf Ym1zX3VuaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHRfYm1zID0gYm1zX3VuaW9uKGJt czEsIGJtczIpOwogCi0JaWYgKGJtczEpCi0JCWJtc19mcmVlKGJtczEpOwotCWlmIChibXMyKQot CQlibXNfZnJlZShibXMyKTsKKwlibXNfZnJlZShibXMxKTsKKwlibXNfZnJlZShibXMyKTsKIAog CWlmIChyZXN1bHRfYm1zID09IE5VTEwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7CkBAIC0zMTIsOCAr MzAyLDcgQEAgdGVzdF9ibXNfbWVtYmVyc2hpcChQR19GVU5DVElPTl9BUkdTKQogCWJtcyA9IFRF WFRfVE9fQklUTUFQU0VUKFBHX0dFVEFSR19URVhUX1BQKDApKTsKIAlyZXN1bHQgPSBibXNfbWVt YmVyc2hpcChibXMpOwogCi0JaWYgKGJtcykKLQkJYm1zX2ZyZWUoYm1zKTsKKwlibXNfZnJlZShi bXMpOwogCiAJUEdfUkVUVVJOX0lOVDMyKChpbnQzMikgcmVzdWx0KTsKIH0KQEAgLTMzMiw4ICsz MjEsNyBAQCB0ZXN0X2Jtc19uZXh0X21lbWJlcihQR19GVU5DVElPTl9BUkdTKQogCXByZXZtZW1i ZXIgPSBQR19HRVRBUkdfSU5UMzIoMSk7CiAJcmVzdWx0ID0gYm1zX25leHRfbWVtYmVyKGJtcywg cHJldm1lbWJlcik7CiAKLQlpZiAoYm1zKQotCQlibXNfZnJlZShibXMpOworCWJtc19mcmVlKGJt cyk7CiAKIAlQR19SRVRVUk5fSU5UMzIocmVzdWx0KTsKIH0KQEAgLTM1NCwxMCArMzQyLDggQEAg dGVzdF9ibXNfaW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHRfYm1zID0gYm1z X2ludGVyc2VjdChibXMxLCBibXMyKTsKIAotCWlmIChibXMxKQotCQlibXNfZnJlZShibXMxKTsK LQlpZiAoYm1zMikKLQkJYm1zX2ZyZWUoYm1zMik7CisJYm1zX2ZyZWUoYm1zMSk7CisJYm1zX2Zy ZWUoYm1zMik7CiAKIAlpZiAocmVzdWx0X2JtcyA9PSBOVUxMKQogCQlQR19SRVRVUk5fTlVMTCgp OwpAQCAtMzg0LDEwICszNzAsOCBAQCB0ZXN0X2Jtc19kaWZmZXJlbmNlKFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHRfYm1zID0gYm1zX2RpZmZlcmVuY2UoYm1zMSwgYm1zMik7CiAKLQlpZiAo Ym1zMSkKLQkJYm1zX2ZyZWUoYm1zMSk7Ci0JaWYgKGJtczIpCi0JCWJtc19mcmVlKGJtczIpOwor CWJtc19mcmVlKGJtczEpOworCWJtc19mcmVlKGJtczIpOwogCiAJaWYgKHJlc3VsdF9ibXMgPT0g TlVMTCkKIAkJUEdfUkVUVVJOX05VTEwoKTsKQEAgLTQxMywxMCArMzk3LDggQEAgdGVzdF9ibXNf Y29tcGFyZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYm1zX2NvbXBhcmUoYm1zMSwg Ym1zMik7CiAKLQlpZiAoYm1zMSkKLQkJYm1zX2ZyZWUoYm1zMSk7Ci0JaWYgKGJtczIpCi0JCWJt c19mcmVlKGJtczIpOworCWJtc19mcmVlKGJtczEpOworCWJtc19mcmVlKGJtczIpOwogCiAJUEdf UkVUVVJOX0lOVDMyKHJlc3VsdCk7CiB9CkBAIC00MzIsOCArNDE0LDcgQEAgdGVzdF9ibXNfaXNf ZW1wdHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGJtc19pc19lbXB0eShibXMpOwog Ci0JaWYgKGJtcykKLQkJYm1zX2ZyZWUoYm1zKTsKKwlibXNfZnJlZShibXMpOwogCiAJUEdfUkVU VVJOX0JPT0wocmVzdWx0KTsKIH0KQEAgLTQ1MywxMCArNDM0LDggQEAgdGVzdF9ibXNfaXNfc3Vi c2V0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBibXNfaXNfc3Vic2V0KGJtczEsIGJt czIpOwogCi0JaWYgKGJtczEpCi0JCWJtc19mcmVlKGJtczEpOwotCWlmIChibXMyKQotCQlibXNf ZnJlZShibXMyKTsKKwlibXNfZnJlZShibXMxKTsKKwlibXNfZnJlZShibXMyKTsKIAogCVBHX1JF VFVSTl9CT09MKHJlc3VsdCk7CiB9CkBAIC00NzYsMTAgKzQ1NSw4IEBAIHRlc3RfYm1zX3N1YnNl dF9jb21wYXJlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBibXNfc3Vic2V0X2NvbXBh cmUoYm1zMSwgYm1zMik7CiAKLQlpZiAoYm1zMSkKLQkJYm1zX2ZyZWUoYm1zMSk7Ci0JaWYgKGJt czIpCi0JCWJtc19mcmVlKGJtczIpOworCWJtc19mcmVlKGJtczEpOworCWJtc19mcmVlKGJtczIp OwogCiAJUEdfUkVUVVJOX0lOVDMyKChpbnQzMikgcmVzdWx0KTsKIH0KQEAgLTQ5NSw4ICs0NzIs NyBAQCB0ZXN0X2Jtc19zaW5nbGV0b25fbWVtYmVyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1 bHQgPSBibXNfc2luZ2xldG9uX21lbWJlcihibXMpOwogCi0JaWYgKGJtcykKLQkJYm1zX2ZyZWUo Ym1zKTsKKwlibXNfZnJlZShibXMpOwogCiAJUEdfUkVUVVJOX0lOVDMyKHJlc3VsdCk7CiB9CkBA IC01NjYsMTAgKzU0Miw4IEBAIHRlc3RfYm1zX292ZXJsYXAoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJlc3VsdCA9IGJtc19vdmVybGFwKGJtczEsIGJtczIpOwogCi0JaWYgKGJtczEpCi0JCWJtc19m cmVlKGJtczEpOwotCWlmIChibXMyKQotCQlibXNfZnJlZShibXMyKTsKKwlibXNfZnJlZShibXMx KTsKKwlibXNfZnJlZShibXMyKTsKIAogCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7CiB9CkBAIC01 OTMsOCArNTY3LDcgQEAgdGVzdF9ibXNfb3ZlcmxhcF9saXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAlpZiAoUEdfQVJHSVNOVUxMKDEpKQogCXsKLQkJaWYgKGJtcykKLQkJCWJtc19mcmVlKGJtcyk7 CisJCWJtc19mcmVlKGJtcyk7CiAJCVBHX1JFVFVSTl9CT09MKGZhbHNlKTsKIAl9CiAKQEAgLTYx Niw4ICs1ODksNyBAQCB0ZXN0X2Jtc19vdmVybGFwX2xpc3QoUEdfRlVOQ1RJT05fQVJHUykKIAog CXJlc3VsdCA9IGJtc19vdmVybGFwX2xpc3QoYm1zLCBpbnRfbGlzdCk7CiAKLQlpZiAoYm1zKQot CQlibXNfZnJlZShibXMpOworCWJtc19mcmVlKGJtcyk7CiAKIAlsaXN0X2ZyZWUoaW50X2xpc3Qp OwogCkBAIC02NDIsMTAgKzYxNCw4IEBAIHRlc3RfYm1zX25vbmVtcHR5X2RpZmZlcmVuY2UoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGJtc19ub25lbXB0eV9kaWZmZXJlbmNlKGJtczEs IGJtczIpOwogCi0JaWYgKGJtczEpCi0JCWJtc19mcmVlKGJtczEpOwotCWlmIChibXMyKQotCQli bXNfZnJlZShibXMyKTsKKwlibXNfZnJlZShibXMxKTsKKwlibXNfZnJlZShibXMyKTsKIAogCVBH X1JFVFVSTl9CT09MKHJlc3VsdCk7CiB9CkBAIC02OTUsMTYgKzY2NSwxNCBAQCB0ZXN0X2Jtc19h ZGRfcmFuZ2UoUEdfRlVOQ1RJT05fQVJHUykKIAkvKiBDaGVjayBmb3IgaW52YWxpZCByYW5nZSAq LwogCWlmICh1cHBlciA8IGxvd2VyKQogCXsKLQkJaWYgKGJtcykKLQkJCWJtc19mcmVlKGJtcyk7 CisJCWJtc19mcmVlKGJtcyk7CiAJCVBHX1JFVFVSTl9OVUxMKCk7CiAJfQogCiAJYm1zID0gYm1z X2FkZF9yYW5nZShibXMsIGxvd2VyLCB1cHBlcik7CiAKIAlyZXN1bHQgPSBCSVRNQVBTRVRfVE9f VEVYVChibXMpOwotCWlmIChibXMpCi0JCWJtc19mcmVlKGJtcyk7CisJYm1zX2ZyZWUoYm1zKTsK IAogCVBHX1JFVFVSTl9URVhUX1AocmVzdWx0KTsKIH0KQEAgLTcyNCwxNiArNjkyLDE0IEBAIHRl c3RfYm1zX2ludF9tZW1iZXJzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlibXMxID0gYm1zX2ludF9t ZW1iZXJzKGJtczEsIGJtczIpOwogCi0JaWYgKGJtczIpCi0JCWJtc19mcmVlKGJtczIpOworCWJt c19mcmVlKGJtczIpOwogCiAJaWYgKGJtczEgPT0gTlVMTCkKIAkJUEdfUkVUVVJOX05VTEwoKTsK IAogCXJlc3VsdCA9IEJJVE1BUFNFVF9UT19URVhUKGJtczEpOwogCi0JaWYgKGJtczEpCi0JCWJt c19mcmVlKGJtczEpOworCWJtc19mcmVlKGJtczEpOwogCiAJUEdfUkVUVVJOX1RFWFRfUChyZXN1 bHQpOwogfQpAQCAtNzU3LDggKzcyMyw3IEBAIHRlc3RfYm1zX2RlbF9tZW1iZXJzKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAkvKiBibXMxIGlzIG5vdyBpbnZhbGlkLCBkbyBub3QgZnJlZSBpdCAqLwog Ci0JaWYgKGJtczIpCi0JCWJtc19mcmVlKGJtczIpOworCWJtc19mcmVlKGJtczIpOwogCiAJaWYg KHJlc3VsdF9ibXMgPT0gTlVMTCkKIAkJUEdfUkVUVVJOX05VTEwoKTsKQEAgLTc4OCw4ICs3NTMs NyBAQCB0ZXN0X2Jtc19yZXBsYWNlX21lbWJlcnMoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIGJt czEgaXMgbm93IGludmFsaWQsIGRvIG5vdCBmcmVlIGl0ICovCiAKLQlpZiAoYm1zMikKLQkJYm1z X2ZyZWUoYm1zMik7CisJYm1zX2ZyZWUoYm1zMik7CiAKIAlpZiAocmVzdWx0X2JtcyA9PSBOVUxM KQogCQlQR19SRVRVUk5fTlVMTCgpOwpAQCAtODM5LDggKzgwMyw3IEBAIHRlc3RfYm1zX2hhc2hf dmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAogCWhhc2hfcmVzdWx0ID0gYm1zX2hhc2hfdmFsdWUo Ym1zKTsKIAotCWlmIChibXMpCi0JCWJtc19mcmVlKGJtcyk7CisJYm1zX2ZyZWUoYm1zKTsKIAog CVBHX1JFVFVSTl9JTlQzMihoYXNoX3Jlc3VsdCk7CiB9CkBAIC04ODksMTEgKzg1Miw4IEBAIHRl c3RfYml0bWFwX21hdGNoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJLyogQ2FsbCBiaXRtYXBfbWF0Y2gg d2l0aCBhZGRyZXNzZXMgb2YgdGhlIEJpdG1hcHNldCBwb2ludGVycyAqLwogCW1hdGNoX3Jlc3Vs dCA9IGJpdG1hcF9tYXRjaCgmYm1zX3B0cjEsICZibXNfcHRyMiwgc2l6ZW9mKEJpdG1hcHNldCAq KSk7CiAKLQkvKiBDbGVhbiB1cCAqLwotCWlmIChibXMxKQotCQlibXNfZnJlZShibXMxKTsKLQlp ZiAoYm1zMikKLQkJYm1zX2ZyZWUoYm1zMik7CisJYm1zX2ZyZWUoYm1zMSk7CisJYm1zX2ZyZWUo Ym1zMik7CiAKIAlQR19SRVRVUk5fSU5UMzIobWF0Y2hfcmVzdWx0KTsKIH0KQEAgLTEwMzEsOCAr OTkxLDcgQEAgdGVzdF9yYW5kb21fb3BlcmF0aW9ucyhQR19GVU5DVElPTl9BUkdTKQogCQl0b3Rh bF9vcHMrKzsKIAl9CiAKLQlpZiAoYm1zKQotCQlibXNfZnJlZShibXMpOworCWJtc19mcmVlKGJt cyk7CiAKIAlQR19SRVRVUk5fSU5UMzIodG90YWxfb3BzKTsKIH0KLS0gCjIuNDkuMAoK --68dba34b_59bd7940_147c--