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=-8.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS 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 C21B7C43387 for ; Fri, 18 Jan 2019 02:46:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 72C0820855 for ; Fri, 18 Jan 2019 02:46:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="BTqsA+wW"; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.i=@fb.onmicrosoft.com header.b="hNbykV3a" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726999AbfARCqZ (ORCPT ); Thu, 17 Jan 2019 21:46:25 -0500 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:42194 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725934AbfARCqY (ORCPT ); Thu, 17 Jan 2019 21:46:24 -0500 Received: from pps.filterd (m0001255.ppops.net [127.0.0.1]) by mx0b-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0I2hiFR022700; Thu, 17 Jan 2019 18:46:01 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=facebook; bh=NnW0QCSJ5fsiK5SS6A6kDGBaIb6AVzN2WJ3n8SjhqAU=; b=BTqsA+wWno5Mg9/aGM4Yns6pZtqBaCXeZFCyoijlZdT8aIOU0umHjRHSzzv0B1YMZK8R YiOPMD2/6cmgEOO7xucfZSLn+o5DCqxUOeFzZcoo14zzdfbxXBlNJW4JIfN/lLmQlE7n JcCS3jw4gnMOPYopVTdx+OQg8qtzvBY6IXk= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0b-00082601.pphosted.com with ESMTP id 2q317a8xg0-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 17 Jan 2019 18:46:01 -0800 Received: from prn-hub01.TheFacebook.com (2620:10d:c081:35::125) by prn-hub05.TheFacebook.com (2620:10d:c081:35::129) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Thu, 17 Jan 2019 18:45:59 -0800 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3 via Frontend Transport; Thu, 17 Jan 2019 18:45:58 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NnW0QCSJ5fsiK5SS6A6kDGBaIb6AVzN2WJ3n8SjhqAU=; b=hNbykV3a4SYTtLDPN4lh6Njs34zbtLyl/x+ZYjEmf8wTYQFDEcXeBLVzBQnCMWpL7D1qPe9zeGy95mXk/ZKMSzPns2gQY4Z5s3TAFjqRqlQam9xOPqYLKk6tIBiRNxA3iYv+WuNJztFdj+ra4Fja1P9CksEkwiQwEvvHsi+WDeA= Received: from CY4PR15MB1366.namprd15.prod.outlook.com (10.172.159.22) by CY4PR15MB1735.namprd15.prod.outlook.com (10.174.53.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.26; Fri, 18 Jan 2019 02:45:57 +0000 Received: from CY4PR15MB1366.namprd15.prod.outlook.com ([fe80::590:36f9:2618:6e4b]) by CY4PR15MB1366.namprd15.prod.outlook.com ([fe80::590:36f9:2618:6e4b%10]) with mapi id 15.20.1516.019; Fri, 18 Jan 2019 02:45:57 +0000 From: Andrey Ignatov To: Stanislav Fomichev CC: "netdev@vger.kernel.org" , "davem@davemloft.net" , "ast@kernel.org" , "daniel@iogearbox.net" Subject: Re: [PATCH bpf-next 5/5] selftests/bpf: add BPF_CGROUP_INET{4,6}_SOCK_RELEASE to test_sock_addr.c Thread-Topic: [PATCH bpf-next 5/5] selftests/bpf: add BPF_CGROUP_INET{4,6}_SOCK_RELEASE to test_sock_addr.c Thread-Index: AQHUrsaOAqAjgtJcz0KewKOMXCJwjaW0Uk6A Date: Fri, 18 Jan 2019 02:45:57 +0000 Message-ID: <20190118024553.GC8342@rdna-mbp.dhcp.thefacebook.com> References: <20190118004106.163825-1-sdf@google.com> <20190118004106.163825-6-sdf@google.com> In-Reply-To: <20190118004106.163825-6-sdf@google.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: MWHPR1301CA0013.namprd13.prod.outlook.com (2603:10b6:301:29::26) To CY4PR15MB1366.namprd15.prod.outlook.com (2603:10b6:903:fa::22) x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [2620:10d:c090:180::1:a8a1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CY4PR15MB1735;20:Y1xfnJSBafAJNsNvSNX3f5rEDgAHo+IswOCuAJlIztJRbqck5Cw+cY2J4jFa9Pra0SFRdT4/y0G2+E2McqykmOSD4bjJ9M+slA8RuKgkOVSuft+PCWDQLXGqWp2pFojgBcsW699qcLUI7jLUBxO/aXOli7XfAIDky7x0P8TgyDI= x-ms-office365-filtering-correlation-id: 24c62377-544a-4215-08cf-08d67cef127c x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:CY4PR15MB1735; x-ms-traffictypediagnostic: CY4PR15MB1735: x-microsoft-antispam-prvs: x-forefront-prvs: 0921D55E4F x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(346002)(366004)(396003)(136003)(39860400002)(199004)(189003)(476003)(11346002)(446003)(186003)(97736004)(99286004)(305945005)(5660300001)(2906002)(1076003)(46003)(7736002)(54906003)(256004)(71200400001)(6486002)(386003)(6506007)(14444005)(5024004)(316002)(71190400001)(102836004)(106356001)(14454004)(76176011)(8936002)(6512007)(33896004)(6116002)(53936002)(9686003)(486006)(52116002)(81156014)(86362001)(68736007)(33656002)(229853002)(6916009)(105586002)(478600001)(8676002)(25786009)(4326008)(6246003)(81166006)(6436002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR15MB1735;H:CY4PR15MB1366.namprd15.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BRuPZARjjccJXIvocIXAii1yjxwURiJmWlRdzYSbiaseS81hM9HbZTpIFVK0KrFWh1WS0qKMBj6zcH9bLHbTvPHKbe/SqTaEiEddNJm18o5ckWxyTNky1PitkTU1gYh6G7arYfzB2Q30+r6bNt9FaghP+QJoZLbnfOqP7kw0asYP/pJmkMAlcIMs+bWlnd/AA3wN3dJD8gaCOOWRIkZpu+Vh5EyT1MMmY01FGG39g9n24lFD6fi6mkHCLmUvU9dYBVwzWKJaeUrmYMrALqeMXDH8pWWW5FFk2Hm9snPKc0aV9QJr7gqYT1fOl8/saHC6JQAQO4iUDCSfY+PiYS/EkLB/XcM1cft5YIHB3cLdTTaOTZSjPAPJpX4I+07a1lR6NbRfj2YaHWV7a5BBv+HYgiO2CZ6JDuFoXbIj3MNx5IQ= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 24c62377-544a-4215-08cf-08d67cef127c X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2019 02:45:56.7244 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1735 X-OriginatorOrg: fb.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-01-18_02:,, signatures=0 X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org U3RhbmlzbGF2IEZvbWljaGV2IDxzZGZAZ29vZ2xlLmNvbT4gW1RodSwgMjAxOS0wMS0xNyAxNjo0 MSAtMDgwMF06DQo+IENvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgaG9va3Mgd2VyZSBleGVjdXRl ZCBpbiB0aGUgY2dyb3VwDQo+IGxvY2FsIHN0b3JhZ2UgdG8gbWFrZSBzdXJlIHRoZXkgdHJpZ2dl ci4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5j b20+DQo+IC0tLQ0KPiAgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfc29ja19hZGRy LmMgfCAxMzEgKysrKysrKysrKysrKysrKysrLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDEzMCBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvYnBmL3Rlc3Rfc29ja19hZGRyLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0 cy9icGYvdGVzdF9zb2NrX2FkZHIuYw0KPiBpbmRleCAzZjExMGVhYWYyOWMuLjkyODQ1YmY2ZmFj OSAxMDA2NDQNCj4gLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfc29ja19h ZGRyLmMNCj4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3Rlc3Rfc29ja19hZGRy LmMNCj4gQEAgLTgyLDYgKzgyLDkgQEAgc3RydWN0IHNvY2tfYWRkcl90ZXN0IHsNCj4gIAl9IGV4 cGVjdGVkX3Jlc3VsdDsNCj4gIH07DQo+ICANCj4gKy8qIFBlci10ZXN0IHN0b3JhZ2UgZm9yIGFk ZGl0aW9uYWwgY2dyb3VwIHN0b3JhZ2UgbWFwICovDQo+ICtzdGF0aWMgaW50IGNnX3N0b3JhZ2Vf ZmQ7DQo+ICsNCj4gIHN0YXRpYyBpbnQgYmluZDRfcHJvZ19sb2FkKGNvbnN0IHN0cnVjdCBzb2Nr X2FkZHJfdGVzdCAqdGVzdCk7DQo+ICBzdGF0aWMgaW50IGJpbmQ2X3Byb2dfbG9hZChjb25zdCBz dHJ1Y3Qgc29ja19hZGRyX3Rlc3QgKnRlc3QpOw0KPiAgc3RhdGljIGludCBjb25uZWN0NF9wcm9n X2xvYWQoY29uc3Qgc3RydWN0IHNvY2tfYWRkcl90ZXN0ICp0ZXN0KTsNCj4gQEAgLTk0LDYgKzk3 LDcgQEAgc3RhdGljIGludCBzZW5kbXNnNl9yd19hc21fcHJvZ19sb2FkKGNvbnN0IHN0cnVjdCBz b2NrX2FkZHJfdGVzdCAqdGVzdCk7DQo+ICBzdGF0aWMgaW50IHNlbmRtc2c2X3J3X2NfcHJvZ19s b2FkKGNvbnN0IHN0cnVjdCBzb2NrX2FkZHJfdGVzdCAqdGVzdCk7DQo+ICBzdGF0aWMgaW50IHNl bmRtc2c2X3J3X3Y0bWFwcGVkX3Byb2dfbG9hZChjb25zdCBzdHJ1Y3Qgc29ja19hZGRyX3Rlc3Qg KnRlc3QpOw0KPiAgc3RhdGljIGludCBzZW5kbXNnNl9yd193aWxkY2FyZF9wcm9nX2xvYWQoY29u c3Qgc3RydWN0IHNvY2tfYWRkcl90ZXN0ICp0ZXN0KTsNCj4gK3N0YXRpYyBpbnQgcmVsZWFzZTQ2 X3Byb2dfbG9hZChjb25zdCBzdHJ1Y3Qgc29ja19hZGRyX3Rlc3QgKnRlc3QpOw0KPiAgDQo+ICBz dGF0aWMgc3RydWN0IHNvY2tfYWRkcl90ZXN0IHRlc3RzW10gPSB7DQo+ICAJLyogYmluZCAqLw0K PiBAQCAtNTA3LDYgKzUxMSwzNSBAQCBzdGF0aWMgc3RydWN0IHNvY2tfYWRkcl90ZXN0IHRlc3Rz W10gPSB7DQo+ICAJCVNSQzZfUkVXUklURV9JUCwNCj4gIAkJU1lTQ0FMTF9FUEVSTSwNCj4gIAl9 LA0KPiArCS8qIHJlbGVhc2UgKi8NCj4gKwl7DQo+ICsJCSJyZWxlYXNlNDogbWFrZSBzdXJlIHRo ZSBob29rIHRyaWdnZXJzIiwNCj4gKwkJcmVsZWFzZTQ2X3Byb2dfbG9hZCwNCj4gKwkJQlBGX0NH Uk9VUF9JTkVUNF9TT0NLX1JFTEVBU0UsDQo+ICsJCUJQRl9DR1JPVVBfSU5FVDRfU09DS19SRUxF QVNFLA0KPiArCQlBRl9JTkVULA0KPiArCQlTT0NLX1NUUkVBTSwNCj4gKwkJU0VSVjRfUkVXUklU RV9JUCwNCj4gKwkJMCwNCj4gKwkJU0VSVjRfUkVXUklURV9JUCwNCj4gKwkJMCwNCj4gKwkJTlVM TCwNCj4gKwkJU1VDQ0VTUywNCj4gKwl9LA0KPiArCXsNCj4gKwkJInJlbGVhc2U2OiBtYWtlIHN1 cmUgdGhlIGhvb2sgdHJpZ2dlcnMiLA0KPiArCQlyZWxlYXNlNDZfcHJvZ19sb2FkLA0KPiArCQlC UEZfQ0dST1VQX0lORVQ2X1NPQ0tfUkVMRUFTRSwNCj4gKwkJQlBGX0NHUk9VUF9JTkVUNl9TT0NL X1JFTEVBU0UsDQo+ICsJCUFGX0lORVQ2LA0KPiArCQlTT0NLX0RHUkFNLA0KPiArCQlTRVJWNl9S RVdSSVRFX0lQLA0KPiArCQkwLA0KPiArCQlTRVJWNl9SRVdSSVRFX0lQLA0KPiArCQkwLA0KPiAr CQlOVUxMLA0KPiArCQlTVUNDRVNTLA0KPiArCX0sDQo+ICB9Ow0KPiAgDQo+ICBzdGF0aWMgaW50 IG1rX3NvY2thZGRyKGludCBkb21haW4sIGNvbnN0IGNoYXIgKmlwLCB1bnNpZ25lZCBzaG9ydCBw b3J0LA0KPiBAQCAtNTU0LDcgKzU4NywxNSBAQCBzdGF0aWMgaW50IGxvYWRfaW5zbnMoY29uc3Qg c3RydWN0IHNvY2tfYWRkcl90ZXN0ICp0ZXN0LA0KPiAgCWludCByZXQ7DQo+ICANCj4gIAltZW1z ZXQoJmxvYWRfYXR0ciwgMCwgc2l6ZW9mKHN0cnVjdCBicGZfbG9hZF9wcm9ncmFtX2F0dHIpKTsN Cj4gLQlsb2FkX2F0dHIucHJvZ190eXBlID0gQlBGX1BST0dfVFlQRV9DR1JPVVBfU09DS19BRERS Ow0KPiArCXN3aXRjaCAodGVzdC0+ZXhwZWN0ZWRfYXR0YWNoX3R5cGUpIHsNCj4gKwljYXNlIEJQ Rl9DR1JPVVBfSU5FVDRfU09DS19SRUxFQVNFOg0KPiArCWNhc2UgQlBGX0NHUk9VUF9JTkVUNl9T T0NLX1JFTEVBU0U6DQo+ICsJCWxvYWRfYXR0ci5wcm9nX3R5cGUgPSBCUEZfUFJPR19UWVBFX0NH Uk9VUF9TT0NLOw0KPiArCQlicmVhazsNCj4gKwlkZWZhdWx0Og0KPiArCQlsb2FkX2F0dHIucHJv Z190eXBlID0gQlBGX1BST0dfVFlQRV9DR1JPVVBfU09DS19BRERSOw0KPiArCQlicmVhazsNCj4g Kwl9DQo+ICAJbG9hZF9hdHRyLmV4cGVjdGVkX2F0dGFjaF90eXBlID0gdGVzdC0+ZXhwZWN0ZWRf YXR0YWNoX3R5cGU7DQo+ICAJbG9hZF9hdHRyLmluc25zID0gaW5zbnM7DQo+ICAJbG9hZF9hdHRy Lmluc25zX2NudCA9IGluc25zX2NudDsNCj4gQEAgLTkxNiw2ICs5NTcsMzUgQEAgc3RhdGljIGlu dCBzZW5kbXNnNl9yd19jX3Byb2dfbG9hZChjb25zdCBzdHJ1Y3Qgc29ja19hZGRyX3Rlc3QgKnRl c3QpDQo+ICAJcmV0dXJuIGxvYWRfcGF0aCh0ZXN0LCBTRU5ETVNHNl9QUk9HX1BBVEgpOw0KPiAg fQ0KPiAgDQo+ICtzdGF0aWMgaW50IHJlbGVhc2U0Nl9wcm9nX2xvYWQoY29uc3Qgc3RydWN0IHNv Y2tfYWRkcl90ZXN0ICp0ZXN0KQ0KPiArew0KPiArCXN0cnVjdCBicGZfY2dyb3VwX3N0b3JhZ2Vf a2V5IGtleTsNCj4gKwl1bnNpZ25lZCBsb25nIGxvbmcgdmFsdWU7DQo+ICsJc3RydWN0IGJwZl9p bnNuIGluc25zW10gPSB7DQo+ICsJCUJQRl9MRF9NQVBfRkQoQlBGX1JFR18xLCAwKSwgLyogbWFw IGZkICovDQo+ICsJCUJQRl9NT1Y2NF9JTU0oQlBGX1JFR18yLCAwKSwgLyogZmxhZ3MsIG5vdCB1 c2VkICovDQo+ICsJCUJQRl9SQVdfSU5TTihCUEZfSk1QIHwgQlBGX0NBTEwsIDAsIDAsIDAsDQo+ ICsJCQkgICAgIEJQRl9GVU5DX2dldF9sb2NhbF9zdG9yYWdlKSwNCj4gKwkJQlBGX01PVjY0X0lN TShCUEZfUkVHXzEsIDEpLA0KPiArCQlCUEZfU1RYX1hBREQoQlBGX0RXLCBCUEZfUkVHXzAsIEJQ Rl9SRUdfMSwgMCksDQo+ICsJCUJQRl9MRFhfTUVNKEJQRl9XLCBCUEZfUkVHXzEsIEJQRl9SRUdf MCwgMCksDQo+ICsJCUJQRl9BTFU2NF9JTU0oQlBGX0FORCwgQlBGX1JFR18xLCAweDEpLA0KPiAr CQlCUEZfTU9WNjRfUkVHKEJQRl9SRUdfMCwgQlBGX1JFR18xKSwNCj4gKwkJQlBGX0VYSVRfSU5T TigpLA0KPiArCX07DQo+ICsNCj4gKwljZ19zdG9yYWdlX2ZkID0gYnBmX2NyZWF0ZV9tYXAoQlBG X01BUF9UWVBFX0NHUk9VUF9TVE9SQUdFLCBzaXplb2Yoa2V5KSwNCj4gKwkJCQlzaXplb2YodmFs dWUpLCAwLCAwKTsNCj4gKwlpZiAoY2dfc3RvcmFnZV9mZCA8IDApIHsNCj4gKwkJcHJpbnRmKCJG YWlsZWQgdG8gY3JlYXRlIG1hcDogJXNcbiIsIHN0cmVycm9yKGVycm5vKSk7DQo+ICsJCXJldHVy biAtMTsNCj4gKwl9DQo+ICsNCj4gKwlpbnNuc1swXS5pbW0gPSBjZ19zdG9yYWdlX2ZkOw0KPiAr DQo+ICsJcmV0dXJuIGxvYWRfaW5zbnModGVzdCwgaW5zbnMsIHNpemVvZihpbnNucykgLyBzaXpl b2Yoc3RydWN0IGJwZl9pbnNuKSk7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbnQgY21wX2FkZHIo Y29uc3Qgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgKmFkZHIxLA0KPiAgCQkgICAgY29uc3Qgc3Ry dWN0IHNvY2thZGRyX3N0b3JhZ2UgKmFkZHIyLCBpbnQgY21wX3BvcnQpDQo+ICB7DQo+IEBAIC0x MzQ2LDYgKzE0MTYsNTcgQEAgc3RhdGljIGludCBydW5fc2VuZG1zZ190ZXN0X2Nhc2UoY29uc3Qg c3RydWN0IHNvY2tfYWRkcl90ZXN0ICp0ZXN0KQ0KPiAgCXJldHVybiBlcnI7DQo+ICB9DQo+ICAN Cj4gK3N0YXRpYyBpbnQgcnVuX3JlbGVhc2VfdGVzdF9jYXNlKGNvbnN0IHN0cnVjdCBzb2NrX2Fk ZHJfdGVzdCAqdGVzdCkNCj4gK3sNCj4gKwlzb2NrbGVuX3QgYWRkcl9sZW4gPSBzaXplb2Yoc3Ry dWN0IHNvY2thZGRyX3N0b3JhZ2UpOw0KPiArCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHJlcXVl c3RlZF9hZGRyOw0KPiArCXN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGV4cGVjdGVkX2FkZHI7DQo+ ICsJc3RydWN0IGJwZl9jZ3JvdXBfc3RvcmFnZV9rZXkga2V5Ow0KPiArCXVuc2lnbmVkIGxvbmcg bG9uZyB2YWx1ZTsNCj4gKwlpbnQgc2VydmZkID0gLTE7DQo+ICsNCj4gKwlpZiAoYnBmX21hcF9n ZXRfbmV4dF9rZXkoY2dfc3RvcmFnZV9mZCwgTlVMTCwgJmtleSkpIHsNCj4gKwkJcHJpbnRmKCJG YWlsZWQgdG8gZ2V0IHRoZSBmaXJzdCBrZXkgaW4gY2dyb3VwIHN0b3JhZ2VcbiIpOw0KPiArCQly ZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKGJwZl9tYXBfbG9va3VwX2VsZW0oY2dfc3Rv cmFnZV9mZCwgJmtleSwgJnZhbHVlKSkgew0KPiArCQlwcmludGYoIkZhaWxlZCB0byBsb29rdXAg Y2dyb3VwIHN0b3JhZ2UgMFxuIik7DQo+ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsNCj4gKwlp ZiAodmFsdWUgIT0gMCkgew0KPiArCQlwcmludGYoIlVuZXhwZWN0ZWQgZGF0YSBpbiB0aGUgY2dy b3VwIHN0b3JhZ2U6ICVsbHVcbiIsIHZhbHVlKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4g Kw0KPiArCWlmIChpbml0X2FkZHJzKHRlc3QsICZyZXF1ZXN0ZWRfYWRkciwgJmV4cGVjdGVkX2Fk ZHIsIE5VTEwpKQ0KPiArCQlyZXR1cm4gLTE7DQo+ICsNCj4gKwlzZXJ2ZmQgPSBzdGFydF9zZXJ2 ZXIodGVzdC0+dHlwZSwgJnJlcXVlc3RlZF9hZGRyLCBhZGRyX2xlbik7DQo+ICsJaWYgKHNlcnZm ZCA8IDApDQo+ICsJCXJldHVybiAtMTsNCj4gKw0KPiArCWNsb3NlKHNlcnZmZCk7DQo+ICsNCj4g KwlpZiAoYnBmX21hcF9nZXRfbmV4dF9rZXkoY2dfc3RvcmFnZV9mZCwgTlVMTCwgJmtleSkpIHsN Cj4gKwkJcHJpbnRmKCJGYWlsZWQgdG8gZ2V0IHRoZSBmaXJzdCBrZXkgaW4gY2dyb3VwIHN0b3Jh Z2VcbiIpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKGJwZl9tYXBfbG9v a3VwX2VsZW0oY2dfc3RvcmFnZV9mZCwgJmtleSwgJnZhbHVlKSkgew0KPiArCQlwcmludGYoIkZh aWxlZCB0byBsb29rdXAgY2dyb3VwIHN0b3JhZ2UgMFxuIik7DQo+ICsJCXJldHVybiAtMTsNCj4g Kwl9DQo+ICsNCj4gKwlpZiAodmFsdWUgIT0gMSkgew0KPiArCQlwcmludGYoIlVuZXhwZWN0ZWQg ZGF0YSBpbiB0aGUgY2dyb3VwIHN0b3JhZ2U6ICVsbHVcbiIsIHZhbHVlKTsNCj4gKwkJcmV0dXJu IC0xOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW50 IHJ1bl90ZXN0X2Nhc2UoaW50IGNnZmQsIGNvbnN0IHN0cnVjdCBzb2NrX2FkZHJfdGVzdCAqdGVz dCkNCj4gIHsNCj4gIAlpbnQgcHJvZ2ZkID0gLTE7DQo+IEBAIC0xMzgxLDYgKzE1MDIsMTAgQEAg c3RhdGljIGludCBydW5fdGVzdF9jYXNlKGludCBjZ2ZkLCBjb25zdCBzdHJ1Y3Qgc29ja19hZGRy X3Rlc3QgKnRlc3QpDQo+ICAJY2FzZSBCUEZfQ0dST1VQX1VEUDZfU0VORE1TRzoNCj4gIAkJZXJy ID0gcnVuX3NlbmRtc2dfdGVzdF9jYXNlKHRlc3QpOw0KPiAgCQlicmVhazsNCj4gKwljYXNlIEJQ Rl9DR1JPVVBfSU5FVDRfU09DS19SRUxFQVNFOg0KPiArCWNhc2UgQlBGX0NHUk9VUF9JTkVUNl9T T0NLX1JFTEVBU0U6DQo+ICsJCWVyciA9IHJ1bl9yZWxlYXNlX3Rlc3RfY2FzZSh0ZXN0KTsNCj4g KwkJYnJlYWs7DQo+ICAJZGVmYXVsdDoNCj4gIAkJZ290byBlcnI7DQo+ICAJfQ0KPiBAQCAtMTQw NSw2ICsxNTMwLDEwIEBAIHN0YXRpYyBpbnQgcnVuX3Rlc3RfY2FzZShpbnQgY2dmZCwgY29uc3Qg c3RydWN0IHNvY2tfYWRkcl90ZXN0ICp0ZXN0KQ0KPiAgCS8qIERldGFjaGluZyB3L28gY2hlY2tp bmcgcmV0dXJuIGNvZGU6IGJlc3QgZWZmb3J0IGF0dGVtcHQuICovDQo+ICAJaWYgKHByb2dmZCAh PSAtMSkNCj4gIAkJYnBmX3Byb2dfZGV0YWNoKGNnZmQsIHRlc3QtPmF0dGFjaF90eXBlKTsNCj4g KwlpZiAoY2dfc3RvcmFnZV9mZCA+IDApIHsNCj4gKwkJY2xvc2UoY2dfc3RvcmFnZV9mZCk7DQo+ ICsJCWNnX3N0b3JhZ2VfZmQgPSAwOw0KDQpOaXQ6IHplcm8gaXMgdmFsaWQgZmQgKHN0ZGluKSBh bmQgc2hvdWxkIG5vdCBiZSB1c2VkIGFzICJ1bmRlZmluZWQiIHZhbHVlLg0KVGhhdCdzIHdoeSAt MSBpcyB1c2VkIHdpdGggcHJvZ2ZkIGFuZCBvdGhlciBkZXNjcmlwdG9ycyBpbiB0aGUgdGVzdC4N Cg0KDQo+ICsJfQ0KPiAgCWNsb3NlKHByb2dmZCk7DQo+ICAJcHJpbnRmKCJbJXNdXG4iLCBlcnIg PyAiRkFJTCIgOiAiUEFTUyIpOw0KPiAgCXJldHVybiBlcnI7DQo+IC0tIA0KPiAyLjIwLjEuMzIx Lmc5ZTc0MDU2OGNlLWdvb2cNCj4gDQoNCi0tIA0KQW5kcmV5IElnbmF0b3YNCg==