From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=Zv18kQtB; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id 672BB5A065C for ; Wed, 26 Aug 2026 09:56:43 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1787731002; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=PjJchx2G4GH1s5hEd3iptVjokPdPbA5dgFyc5sLweMM=; b=Zv18kQtBeGQ+irsPmtXZaizGnWy2g07isawMUB9gEWBl23RdZpbRIe7AEsWmE6wW1rijOX CTO35829dU/+r5/hDeKJoUHFWTwm0wXQJebTvoVD02g39w+8WthmKLjywGGJMTDpftSQ3n pwbMhxSyrNkV2CL5LTvidjUolyZTgNg= Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-607-2QGztZQ3NDqX1NugB_cdDA-1; Wed, 26 Aug 2026 03:56:40 -0400 X-MC-Unique: 2QGztZQ3NDqX1NugB_cdDA-1 X-Mimecast-MFC-AGG-ID: 2QGztZQ3NDqX1NugB_cdDA_1787730999 Received: by mail-ej1-f72.google.com with SMTP id a640c23a62f3a-c210c66672eso50650566b.2 for ; Wed, 26 Aug 2026 00:56:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787730999; x=1788335799; h=content-transfer-encoding:content-type:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=PjJchx2G4GH1s5hEd3iptVjokPdPbA5dgFyc5sLweMM=; b=CE3UxFEpL7pIyYnLplmzG86VojD4CioVJSBw9KLz1mrC3Jc7Kef1h0s3ulyH9KDlLa 5MuqdbnSgJOTXDuVCRkYNCeD2fyNoX8hqa5c1ELdpRz3aoxCdYyMVSD9J+cpuiTtSNl4 dGcdbO7KqO+/hEvGgyBf5HsELiYbr6OrGqynz+hKYb0Qm4VD2PrB2nd08uu+pB02FJ5l r/+cDwlCKWwLNAiOCXEUXF4qgKvahwSbZ6g/EL7JSKhjGRSgwL5EZztyb/ZzSPcqUy86 WxygDrhq+9pbexIbbRga7KzBNRBJ1yWYHlXT3fD7TjvsqRoWuKkScvdTLXP7uKmDYfBo yLfA== X-Forwarded-Encrypted: i=1; AHgh+Rq4MqTdmT+2AJ3xliBx1L1wpImmbv60aTnPpbhMMWbS01DJoUSELIZsQpD1BLlJ3Mx/zOpivfW8tlo=@passt.top X-Gm-Message-State: AFuF++mMr43uEJzeH+orJnHJcRkzbGZZaBT620Ulk0HBtld7Lh8KrIim 8KppC+N8V4i3z/86p7zz67ed6AF+gvtSgHP9h1XK+nWbD/ffaH2HwRAh6hSirL5cPzN1eea6sEq Vfawlq2WEadUubPMD8Fjmm+peY3ihoTU+JzVO+CeTcO9OEP3gMMJYzw== X-Gm-Gg: AR+sD130R3ZP3vqINo3U4H/R0uql4jf8OgrutKaQ3wO8riS2zVJj+6ejMsyTevoDwL0 NsWF9ykVu5cyTuAYDTL4JC76JrqUo3Xcn8jKFg3fifuLqXX+nEAraYcHw6lxMoNbr3qPQXr1YIq PkyQsFpK96WhpIzlBKrMm7f3j3JUj+eej8ivXqb9e1vGNtId8bPQ20JnpaetLhMRaiZCj4kYEzg nw19G+BPpQO8lDWoFv+9jNL5tLyBOXbuJ/Bl3YGXtLhifja8FDLHZpvQVnJpQdh9snM0brOh3hg RZH5j7XvqXF0naKNHtfcStxQoKTmMjZu6JCm+sdzGQaovvk5vLawlTVKlgpx0Ji9D24DnXiR/qi APDN+sS+4Guwe+lIcIJ2ppCn3mJazDACyyawOvAxo7iE8 X-Received: by 2002:a17:907:998d:b0:c1a:5d49:f99d with SMTP id a640c23a62f3a-c250baffb5bmr653686466b.7.1787730999324; Wed, 26 Aug 2026 00:56:39 -0700 (PDT) X-Received: by 2002:a17:907:998d:b0:c1a:5d49:f99d with SMTP id a640c23a62f3a-c250baffb5bmr653678866b.7.1787730998811; Wed, 26 Aug 2026 00:56:38 -0700 (PDT) Received: from ?IPV6:2a01:e0a:e10:ef90:d92c:7e4a:47e6:1b23? ([2a01:e0a:e10:ef90:d92c:7e4a:47e6:1b23]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2523ea83a1sm158821566b.60.2026.08.26.00.56.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 26 Aug 2026 00:56:38 -0700 (PDT) Message-ID: Date: Wed, 26 Aug 2026 09:56:37 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v6 3/6] dhcp: Add option overload To: Anshu Kumari , sbrivio@redhat.com, passt-dev@passt.top References: <20260824134436.282300-1-anskuma@redhat.com> <20260824134436.282300-4-anskuma@redhat.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20260824134436.282300-4-anskuma@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: _qA1zrKMmJkQvtvm0ln-6X11MnQZ8HCQHNCTv0OzCJM_1787730999 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: 52ORMRJYVHBICNQEIMZ3PHGAVHPGCPFR X-Message-ID-Hash: 52ORMRJYVHBICNQEIMZ3PHGAVHPGCPFR X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: david@gibson.dropbear.id.au, jmaloy@redhat.com X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gOC8yNC8yNiAxNTo0NCwgQW5zaHUgS3VtYXJpIHdyb3RlOg0KPiBXaGVuIHRoZSBvcHRpb25z IGZpZWxkIGlzIGZ1bGwsIG92ZXJmbG93IHJlbWFpbmluZyBESENQIG9wdGlvbnMgaW50bw0KPiB0 aGUgc25hbWUgYW5kIGZpbGUgZmllbGRzIHBlciBSRkMgMjEzMiBvcHRpb24gNTIuDQo+IA0KPiBQ ZXIgUkZDIDIxMzIsIFNlY3Rpb24gOS41LCB0aGUgYm9vdCBmaWxlIG5hbWUgaXMgYWx3YXlzIHBs YWNlZCBpbiB0aGUNCj4gJ2ZpbGUnIGhlYWRlciBmaWVsZC4gIFdoZW4gYSBib290IGZpbGUgaXMg c2V0LCB0aGUgZmlsZSBmaWVsZCBpcw0KPiByZXNlcnZlZCBmcm9tIG92ZXJsb2FkIGFuZCBvdmVy ZmxvdyB1c2VzIG9ubHkgdGhlIHNuYW1lIGZpZWxkLg0KPiANCj4gTGluazogaHR0cHM6Ly9idWdz LnBhc3N0LnRvcC9zaG93X2J1Zy5jZ2k/aWQ9MTkyDQo+IFNpZ25lZC1vZmYtYnk6IEFuc2h1IEt1 bWFyaSA8YW5za3VtYUByZWRoYXQuY29tPg0KPiAtLS0NCj4gdjY6DQo+ICAgIC0gQ2hhbmdlZCBm aWxsX29uZSgpIHJldHVybiB0eXBlIGZyb20gYm9vbCB0byB2b2lkLg0KPiAgICAtIFJlcGxhY2Vk IHBlci1jYWxsLXNpdGUgZGVidWcgbWVzc2FnZXMgd2l0aCBhIHNpbmdsZQ0KPiAgICAgIHJlcG9y dGluZyBsb29wIGF0IGVuZCBvZiBmaWxsKCkuDQo+ICAgIC0gQWRkZWQgZXhwbGljaXQgbnVtZXJp YyB2YWx1ZXMgdG8gZW51bSBkaGNwX292ZXJsb2FkLg0KPiAgICAtIFJlbW92ZWQgdGVtcG9yYXJ5 IGJ1ZmZlciBmb3IgYm9vdCBmaWxlIGNvcHksDQo+ICAgICAgY29weSBkaXJlY3RseSBpbnRvIHJl cGx5LmZpbGUuDQo+ICAgIC0gRml4ZWQgbWl4ZWQgY29kZSBhbmQgZGVjbGFyYXRpb25zLg0KPiAg ICAtIEZpeGVkIGluZGVudGF0aW9uIGFuZCB3aGl0ZXNwYWNlIGlzc3Vlcy4NCj4gICAgLSBBZGRl ZCBjdXJseSBicmFja2V0cyBmb3IgbXVsdGktbGluZSBpZiBjbGF1c2VzDQo+IA0KPiB2NToNCj4g ICAgLSBlbmhhbmNlZCBlbnVtIGRoY3Bfb3ZlcmxvYWQgdG8gZm9sbG93IGtlcm5lbC1kb2MuDQo+ ICAgIC0gSW5saW5lIGZpbGxfb3ZlcmZsb3coKSBpbnRvIGZpbGwoKQ0KPiAgICAtIFVzZSBzdGF0 ZS1iYXNlZCBjaGVja3MgaW5zdGVhZCBvZiBzbGVuDQo+IA0KPiB2NDoNCj4gICAgLSBDb252ZXJ0 ZWQgb3ZlcmxvYWQgI2RlZmluZXMgdG8gZW51bSBkaGNwX292ZXJsb2FkLg0KPiAgICAtIEZpeGVk IG1pc3Npbmcgd2hpdGVzcGFjZSBpbiBjb21tZW50IGJlZm9yZSAqLy4NCj4gICAgLSBCb290IGZp bGUgbmFtZSBhbHdheXMgcGxhY2VkIGluICdmaWxlJyBoZWFkZXIgZmllbGQgcGVyIFJGQyAyMTMy LA0KPiAgICAgIFNlY3Rpb24gOS41OyBmaWxlIGZpZWxkIHJlc2VydmVkIGZyb20gb3ZlcmxvYWQg d2hlbiBib290ZmlsZSBpcw0KPiAgICAgIHNldDsgb3B0aW9uIDY3IHN1cHByZXNzZWQgZnJvbSBv cHRpb25zIGFyZWEuDQo+IA0KPiB2MzoNCj4gICAgLSBBZGRlZCBSRkMgMjEzMiBTZWN0aW9uIDku MyByZWZlcmVuY2UgY29tbWVudCBvbiBvdmVybG9hZA0KPiAgICAgIGNvbnN0YW50cy4NCj4gICAg LSBVc2UgQVJSQVlfU0laRShvcHRzKSBpbnN0ZWFkIG9mIHJhdyAyNTUgaW4gZmlsbF9vdmVyZmxv dygpLg0KPiAgICAtIFN3YXBwZWQgb3ZlcmZsb3cgb3JkZXI6IHRyeSBzbmFtZSAoNjQgYnl0ZXMp IGZpcnN0LCB0aGVuIGZpbGUNCj4gICAgICAoMTI4IGJ5dGVzKSDigJQgYmV0dGVyIHBhY2tpbmcg YW5kIGtlZXBzIGZpbGUgZmllbGQgYXZhaWxhYmxlIGZvcg0KPiAgICAgIGJvb3QgZmlsZSBuYW1l Lg0KPiAgICAtIFJlbW92ZWQgJyYnIGZyb20gJnJlcGx5LmZpbGUuDQo+ICAgIC0gUmVtb3ZlZCAn KzEnIGZyb20gbWVtY3B5IOKAlCByZXBseS5maWxlIGFscmVhZHkgemVyb2VkLg0KPiAgICAtIG9w dF9zZXRfZG5zX3NlYXJjaCgpIG1heF9sZW46IE9QVF9NQVggLSAzIGluc3RlYWQgb2YNCj4gICAg ICBzaXplb2YobS0+bykuDQo+IA0KPiB2MjoNCj4gICAgLSBBZGRlZCAjZGVmaW5lIERIQ1BfT1ZF UkxPQURfRklMRSBhbmQgI2RlZmluZSBESENQX09WRVJMT0FEX1NOQU1FIGNvbnN0YW50cw0KPiAg ICAtIEFkZGVkIGNvbW1lbnQgZG9jdW1lbnRpbmcgc3BhY2UgcmVzZXJ2YXRpb246IC8qIFJlc2Vy dmUgMyBieXRlcyBmb3Igb3B0aW9uIDUyICovDQo+ICAgIC0gRml4ZWQgRE5TIHNlYXJjaCBsZW5n dGg6IHNpemVvZihtLT5vKSBvbmx5LCBub3QgY29tYmluZWQgd2l0aCBmaWxlK3NuYW1lDQo+ICAg IC0gUmVtb3ZlZCBkaGNwX2Jvb3QgcmVmZXJlbmNlcyDigJQgcmVwbHkuZmlsZSBjb3B5IG5vdyBy ZWFkcyBmcm9tIG9wdHNbNjddDQo+ICAgIC0gVXNlZCBESENQX09WRVJMT0FEX0ZJTEUgY29uc3Rh bnQgaW4gcmVwbHkuZmlsZSBndWFyZA0KPiAtLS0NCj4gICBkaGNwLmMgfCA5OCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tDQo+ICAgMSBm aWxlIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlm ZiAtLWdpdCBhL2RoY3AuYyBiL2RoY3AuYw0KPiBpbmRleCAzMjE5NjhhLi4wMmM3NzQ0IDEwMDY0 NA0KPiAtLS0gYS9kaGNwLmMNCj4gKysrIGIvZGhjcC5jDQo+IEBAIC0xNDYsMTYgKzE0NiwxNCBA QCBzdHJ1Y3QgbXNnIHsNCj4gICAgKiBAc2l6ZToJVXNhYmxlIHNpemUgb2YgQGJ1ZiAoZXhjbHVk aW5nIGVuZCBtYXJrZXIpDQo+ICAgICogQG86CQlPcHRpb24gbnVtYmVyDQo+ICAgICogQG9mZnNl dDoJQ3VycmVudCBvZmZzZXQgd2l0aGluIEBidWYsIHVwZGF0ZWQgb24gaW5zZXJ0aW9uDQo+IC0g Kg0KPiAtICogUmV0dXJuOiBmYWxzZSBpZiBAYnVmIGhhcyBzcGFjZSB0byB3cml0ZSB0aGUgb3B0 aW9uLCB0cnVlIG90aGVyd2lzZQ0KPiAgICAqLw0KPiAtc3RhdGljIGJvb2wgZmlsbF9vbmUodWlu dDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSwgaW50IG8sIGludCAqb2Zmc2V0KQ0KPiArc3RhdGljIHZv aWQgZmlsbF9vbmUodWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSwgaW50IG8sIGludCAqb2Zmc2V0 KQ0KPiAgIHsNCj4gICAJc2l6ZV90IHNsZW4gPSBvcHRzW29dLnNsZW47DQo+ICAgDQo+ICAgCS8q IElmIHdlIGRvbid0IGhhdmUgc3BhY2UgdG8gd3JpdGUgdGhlIG9wdGlvbiwgdGhlbiBqdXN0IHNr aXAgKi8NCj4gICAJaWYgKCpvZmZzZXQgKyAyIC8qIGNvZGUgYW5kIGxlbmd0aCBvZiBvcHRpb24g Ki8gKyBzbGVuID4gc2l6ZSkNCj4gLQkJcmV0dXJuIHRydWU7DQo+ICsJCXJldHVybjsNCj4gICAN Cj4gICAJYnVmWypvZmZzZXRdID0gbzsNCj4gICAJYnVmWypvZmZzZXQgKyAxXSA9IHNsZW47DQo+ IEBAIC0xNjcsMTkgKzE2NSwzNyBAQCBzdGF0aWMgYm9vbCBmaWxsX29uZSh1aW50OF90ICpidWYs IHNpemVfdCBzaXplLCBpbnQgbywgaW50ICpvZmZzZXQpDQo+ICAgDQo+ICAgCW9wdHNbb10uc2Vu dCA9IDE7DQo+ICAgCSpvZmZzZXQgKz0gc2xlbjsNCj4gLQlyZXR1cm4gZmFsc2U7DQo+ICAgfQ0K PiAgIA0KDQpjaGFuZ2luZyB0aGUgcmV0dXJuIHR5cGUgb2YgZmlsbF9vbmUoKSBhbmQgcmVtb3Zp bmcgZGVidWcgaW5mb3JtYXRpb24gc2hvdWxkIGJlIGluIGEgDQpzZXBhcmF0ZSBwYXRjaC4gSXQn cyBoYXJkIHRvIHVuZGVyc3RhbmQgdGhlIGNoYW5nZSB3aGVuIHdlIGZvY3VzIG9uIHRoZSBvdmVy bG9hZCBvcHRpb24uLi4NCg0KVGhlIHBhdGNoIGNhbiBhbHNvIGV4cGxhaW5zIHRoYXQgd2UgcmVs eSBub3cgb24gb3B0c1tdLnNlbnQgdG8ga25vdyBpZiB0aGUgb3B0aW9uIGhhcyBiZWVuIA0Kd3Jp dHRlbiBpbiBidWYuDQoNCj4gICAvKioNCj4gLSAqIGZpbGwoKSAtIEZpbGwgb3B0aW9ucyBpbiBt ZXNzYWdlDQo+IC0gKiBAbToJCU1lc3NhZ2UgdG8gZmlsbA0KPiArICogZW51bSBkaGNwX292ZXJs b2FkIC0gREhDUCBvcHRpb24gb3ZlcmxvYWQgdmFsdWVzIChSRkMgMjEzMiwgU2VjdGlvbiA5LjMp DQo+ICsgKiBAREhDUF9PVkVSTE9BRF9OT05FOgkJTm8gb3ZlcmxvYWQNCj4gKyAqIEBESENQX09W RVJMT0FEX0ZJTEU6CQlmaWxlIGZpZWxkIGNhcnJpZXMgb3B0aW9ucw0KPiArICogQERIQ1BfT1ZF UkxPQURfU05BTUU6CXNuYW1lIGZpZWxkIGNhcnJpZXMgb3B0aW9ucw0KPiArICovDQo+ICtlbnVt IGRoY3Bfb3ZlcmxvYWQgew0KPiArCURIQ1BfT1ZFUkxPQURfTk9ORSAgPSAwLA0KPiArCURIQ1Bf T1ZFUkxPQURfRklMRSAgPSAxLA0KPiArCURIQ1BfT1ZFUkxPQURfU05BTUUgPSAyLA0KPiArfTsN Cj4gKw0KPiArLyoqDQo+ICsgKiBmaWxsKCkgLSBGaWxsIG9wdGlvbnMgaW4gbWVzc2FnZSwgd2l0 aCBvdmVybG9hZCBpbnRvIGZpbGUvc25hbWUgaWYgbmVlZGVkDQo+ICsgKiBAbToJCQlNZXNzYWdl IHRvIGZpbGwNCj4gKyAqIEBvdmVybG9hZDoJCVNldCB0byBvcHRpb24gNTIgdmFsdWUgKDAgaWYg bm9uZSwgMS8yLzMgcGVyIFJGQyAyMTMyKQ0KPiArICogQGhhc19ib290ZmlsZToJUmVzZXJ2ZSBm aWxlIGZpZWxkIGZvciBib290IGZpbGUgbmFtZQ0KPiAgICAqDQo+ICAgICogUmV0dXJuOiBjdXJy ZW50IHNpemUgb2Ygb3B0aW9ucyBmaWVsZA0KPiAgICAqLw0KPiAtc3RhdGljIGludCBmaWxsKHN0 cnVjdCBtc2cgKm0pDQo+ICtzdGF0aWMgaW50IGZpbGwoc3RydWN0IG1zZyAqbSwgZW51bSBkaGNw X292ZXJsb2FkICpvdmVybG9hZCwgYm9vbCBoYXNfYm9vdGZpbGUpDQo+ICAgew0KPiArCWludCBz bmFtZV9vZmYgPSAwLCBmaWxlX29mZiA9IDA7DQo+ICsJLyogUmVzZXJ2ZSAzIGJ5dGVzIGZvciBv cHRpb24gNTIgKG92ZXJsb2FkKSBpZiBuZWVkZWQgKi8NCj4gKwlzaXplX3Qgc2l6ZSA9IE9QVF9N QVggLSAzOw0KPiAgIAlpbnQgaSwgbywgb2Zmc2V0ID0gMDsNCj4gICANCj4gKwkqb3ZlcmxvYWQg PSBESENQX09WRVJMT0FEX05PTkU7DQoNCldoeSBvdmVybG9hZCBpcyBhIHBhcmFtZXRlcj8gaXQg aXMgb25seSB1c2VkIGluc2lkZSB0aGUgZnVuY3Rpb24gYW5kIHRoZSBzZXQgdmFsdWUgaXMgDQpu ZXZlciByZWFkIGJ5IHRoZSBjYWxsZXIuDQoNCj4gKw0KPiAgIAlmb3IgKG8gPSAwOyBvIDwgMjU1 OyBvKyspDQo+ICAgCQlvcHRzW29dLnNlbnQgPSAwOw0KPiAgIA0KPiBAQCAtMTg4LDIwICsyMDQs NTQgQEAgc3RhdGljIGludCBmaWxsKHN0cnVjdCBtc2cgKm0pDQo+ICAgCSAqIFB1dCBpdCB0aGVy ZSBleHBsaWNpdGx5LCB1bmxlc3MgcmVxdWVzdGVkIHZpYSBvcHRpb24gNTUuDQo+ICAgCSAqLw0K PiAgIAlpZiAob3B0c1s1NV0uY2xlbiA+IDAgJiYgIW1lbWNocihvcHRzWzU1XS5jLCA1Mywgb3B0 c1s1NV0uY2xlbikpDQo+IC0JCWlmIChmaWxsX29uZShtLT5vLCBPUFRfTUFYLCA1MywgJm9mZnNl dCkpDQo+IC0JCQlkZWJ1ZygiREhDUDogc2tpcHBpbmcgb3B0aW9uIDUzIik7DQo+ICsJCWZpbGxf b25lKG0tPm8sIHNpemUsIDUzLCAmb2Zmc2V0KTsNCj4gICANCj4gICAJZm9yIChpID0gMDsgaSA8 IG9wdHNbNTVdLmNsZW47IGkrKykgew0KPiAgIAkJbyA9IG9wdHNbNTVdLmNbaV07DQo+ICAgCQlp ZiAob3B0c1tvXS5zdGF0ZSAhPSBPUFRfVU5TRVQpDQo+IC0JCQlpZiAoZmlsbF9vbmUobS0+bywg T1BUX01BWCwgbywgJm9mZnNldCkpDQo+IC0JCQkJZGVidWcoIkRIQ1A6IHNraXBwaW5nIG9wdGlv biAlaSIsIG8pOw0KPiArCQkJZmlsbF9vbmUobS0+bywgc2l6ZSwgbywgJm9mZnNldCk7DQo+ICAg CX0NCj4gICANCj4gICAJZm9yIChvID0gMDsgbyA8IDI1NTsgbysrKSB7DQo+ICAgCQlpZiAob3B0 c1tvXS5zdGF0ZSAhPSBPUFRfVU5TRVQgJiYgIW9wdHNbb10uc2VudCkNCj4gLQkJCWlmIChmaWxs X29uZShtLT5vLCBPUFRfTUFYLCBvLCAmb2Zmc2V0KSkNCj4gLQkJCQlkZWJ1ZygiREhDUDogc2tp cHBpbmcgb3B0aW9uICVpIiwgbyk7DQo+ICsJCQlmaWxsX29uZShtLT5vLCBzaXplLCBvLCAmb2Zm c2V0KTsNCj4gKwl9DQo+ICsNCj4gKwkvKiBPdmVyZmxvdyB1bnNlbnQgb3B0aW9ucyBpbnRvIHNu YW1lLCB0aGVuIGZpbGUgKi8NCj4gKwlmb3IgKG8gPSAwOyAoc2l6ZV90KW8gPCBBUlJBWV9TSVpF KG9wdHMpOyBvKyspIHsNCj4gKwkJaWYgKG9wdHNbb10uc3RhdGUgPT0gT1BUX1VOU0VUIHx8IG9w dHNbb10uc2VudCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArCQlmaWxsX29uZShtLT5zbmFtZSwgc2l6 ZW9mKG0tPnNuYW1lKSAtIDEsIG8sICZzbmFtZV9vZmYpOw0KPiArCX0NCj4gKw0KPiArCWlmICgh aGFzX2Jvb3RmaWxlKSB7DQo+ICsJCWZvciAobyA9IDA7IChzaXplX3QpbyA8IEFSUkFZX1NJWkUo b3B0cyk7IG8rKykgew0KPiArCQkJaWYgKG9wdHNbb10uc3RhdGUgPT0gT1BUX1VOU0VUIHx8IG9w dHNbb10uc2VudCkNCj4gKwkJCQljb250aW51ZTsNCj4gKwkJCWZpbGxfb25lKG0tPmZpbGUsIHNp emVvZihtLT5maWxlKSAtIDEsIG8sICZmaWxlX29mZik7DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4g KwkvKiBSZXBvcnQgYW55IG9wdGlvbnMgdGhhdCBjb3VsZCBub3QgYmUgc2VudCAqLw0KPiArCWZv ciAobyA9IDA7IChzaXplX3QpbyA8IEFSUkFZX1NJWkUob3B0cyk7IG8rKykgew0KPiArCQlpZiAo b3B0c1tvXS5zdGF0ZSAhPSBPUFRfVU5TRVQgJiYgIW9wdHNbb10uc2VudCkNCj4gKwkJCWRlYnVn KCJESENQOiBza2lwcGluZyBvcHRpb24gJWkiLCBvKTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoc25h bWVfb2ZmKSB7DQo+ICsJCW0tPnNuYW1lW3NuYW1lX29mZl0gPSAyNTU7DQo+ICsJCSpvdmVybG9h ZCB8PSBESENQX09WRVJMT0FEX1NOQU1FOw0KPiArCX0NCj4gKw0KPiArCWlmIChmaWxlX29mZikg ew0KPiArCQltLT5maWxlW2ZpbGVfb2ZmXSA9IDI1NTsNCj4gKwkJKm92ZXJsb2FkIHw9IERIQ1Bf T1ZFUkxPQURfRklMRTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoKm92ZXJsb2FkKSB7DQo+ICsJCW0t Pm9bb2Zmc2V0KytdID0gNTI7DQo+ICsJCW0tPm9bb2Zmc2V0KytdID0gMTsNCj4gKwkJbS0+b1tv ZmZzZXQrK10gPSAqb3ZlcmxvYWQ7DQo+ICAgCX0NCj4gICANCj4gICAJbS0+b1tvZmZzZXQrK10g PSAyNTU7DQo+IEBAIC0zMTUsNiArMzY1LDcgQEAgc3RhdGljIHZvaWQgb3B0X3NldF9kbnNfc2Vh cmNoKGNvbnN0IHN0cnVjdCBjdHggKmMsIHNpemVfdCBtYXhfbGVuKQ0KPiAgIGludCBkaGNwKGNv bnN0IHN0cnVjdCBjdHggKmMsIHN0cnVjdCBpb3ZfdGFpbCAqZGF0YSkNCj4gICB7DQo+ICAgCWNo YXIgbWFjc3RyW0VUSF9BRERSU1RSTEVOXTsNCj4gKwllbnVtIGRoY3Bfb3ZlcmxvYWQgb3Zlcmxv YWQ7DQo+ICAgCXNpemVfdCBtbGVuLCBkbGVuLCBvcHRfbGVuOw0KPiAgIAlzdHJ1Y3QgaW5fYWRk ciBtYXNrLCBkc3Q7DQo+ICAgCXN0cnVjdCBldGhoZHIgZWhfc3RvcmFnZTsNCj4gQEAgLTMyNSw2 ICszNzYsNyBAQCBpbnQgZGhjcChjb25zdCBzdHJ1Y3QgY3R4ICpjLCBzdHJ1Y3QgaW92X3RhaWwg KmRhdGEpDQo+ICAgCWNvbnN0IHN0cnVjdCB1ZHBoZHIgKnVoOw0KPiAgIAlzdHJ1Y3QgbXNnIG1f c3RvcmFnZTsNCj4gICAJc3RydWN0IG1zZyBjb25zdCAqbTsNCj4gKwlib29sIGhhc19ib290Zmls ZTsNCj4gICAJc3RydWN0IG1zZyByZXBseTsNCj4gICAJdW5zaWduZWQgaW50IGk7DQo+ICAgDQo+ IEBAIC00ODYsMTAgKzUzOCwyMiBAQCBpbnQgZGhjcChjb25zdCBzdHJ1Y3QgY3R4ICpjLCBzdHJ1 Y3QgaW92X3RhaWwgKmRhdGEpDQo+ICAgCQl9DQo+ICAgCX0NCj4gICANCj4gLQlpZiAoIWMtPm5v X2RoY3BfZG5zX3NlYXJjaCkNCj4gLQkJb3B0X3NldF9kbnNfc2VhcmNoKGMsIHNpemVvZihtLT5v KSk7DQo+ICsJaWYgKCFjLT5ub19kaGNwX2Ruc19zZWFyY2gpIHsNCj4gKwkJLyogMyBieXRlcyBy ZXNlcnZlZCBmb3Igb3B0aW9uIDUyIChjb2RlLCBsZW5ndGgsIHZhbHVlKSAqLw0KPiArCQlvcHRf c2V0X2Ruc19zZWFyY2goYywgT1BUX01BWCAtIDMpOw0KPiArCX0NCj4gKw0KPiArCS8qIFJGQyAy MTMyLCBTZWN0aW9uIDkuNTogcHV0IGJvb3QgZmlsZSBuYW1lIGluIHRoZSAnZmlsZScgaGVhZGVy DQo+ICsJICogZmllbGQuICBTdXBwcmVzcyBvcHRpb24gNjcgZnJvbSB0aGUgb3B0aW9ucyBhcmVh IGFuZCByZXNlcnZlDQo+ICsJICogdGhlIGZpbGUgZmllbGQgZnJvbSBvdmVybG9hZC4NCj4gKwkg Ki8NCj4gKwloYXNfYm9vdGZpbGUgPSBvcHRzWzY3XS5zbGVuID4gMCAmJg0KPiArCQkgICAgICAg KHNpemVfdClvcHRzWzY3XS5zbGVuIDwgc2l6ZW9mKHJlcGx5LmZpbGUpOw0KPiArDQo+ICsJZGxl biA9IG9mZnNldG9mKHN0cnVjdCBtc2csIG8pICsgZmlsbCgmcmVwbHksICZvdmVybG9hZCwgaGFz X2Jvb3RmaWxlKTsNCj4gICANCj4gLQlkbGVuID0gb2Zmc2V0b2Yoc3RydWN0IG1zZywgbykgKyBm aWxsKCZyZXBseSk7DQo+ICsJaWYgKGhhc19ib290ZmlsZSkNCj4gKwkJbWVtY3B5KHJlcGx5LmZp bGUsIG9wdHNbNjddLnMsIG9wdHNbNjddLnNsZW4pOw0KDQpQZXJoYXBzIHRoZSBzZXR0aW5nIG9m IHJlcGx5LmZpbGUgY291bGQgbWUgbWVyZ2VkIGluIFBBVENIIDUsIGFuZCBtb3ZlIHRoaXMgcGF0 Y2ggYWZ0ZXIgDQpQQVRDSCA1Pw0KDQoNCj4gICANCj4gICAJaWYgKG0tPmZsYWdzICYgRkxBR19C Uk9BRENBU1QpDQo+ICAgCQlkc3QgPSBpbjRhZGRyX2Jyb2FkY2FzdDsNCg0K