Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Nov 2006 22:21:10 -0200
From:      "Diego Giagio" <dgiagio@gmail.com>
To:        "Martin Voros" <martin_voros@yahoo.com>
Cc:        trustedbsd-audit@freebsd.org
Subject:   Re: Additional 64-bit token types to libbsm
Message-ID:  <1b0798830611141621s49b30399l68a2241be3e91dc3@mail.gmail.com>
In-Reply-To: <1b0798830611131133q2c65d167if18fdd291bdfb391@mail.gmail.com>
References:  <1b0798830611121359r877d4ces5182f1ec1eb2b646@mail.gmail.com> <20061113151341.26309.qmail@web55504.mail.re4.yahoo.com> <1b0798830611131133q2c65d167if18fdd291bdfb391@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
------=_Part_18902_5933769.1163550070888
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 11/13/06, Diego Giagio <dgiagio@gmail.com> wrote:
> On 11/13/06, Martin Voros <martin_voros@yahoo.com> wrote:
> > Hi,
> >
> > I think that you should also define output functions (bsm_io.c) in your patch, because now it's not possible to display new tokens by praudit.
> >
>
> Thanks for pointing that out. I'll add those functions and re-submit the patch.
>

The new patch is attached. All needed output functions were implemented.

DG

------=_Part_18902_5933769.1163550070888
Content-Type: application/octet-stream; name=tokens64_2.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_euizmlfo
Content-Disposition: attachment; filename="tokens64_2.patch"

ZGlmZiAtdSAtciBvcGVuYnNtL2JzbS9hdWRpdF9yZWNvcmQuaCBvcGVuYnNtLWRnaWFnaW8vYnNt
L2F1ZGl0X3JlY29yZC5oCi0tLSBvcGVuYnNtL2JzbS9hdWRpdF9yZWNvcmQuaAkyMDA2LTA5LTI0
IDE3OjIwOjAzLjAwMDAwMDAwMCAtMDMwMAorKysgb3BlbmJzbS1kZ2lhZ2lvL2JzbS9hdWRpdF9y
ZWNvcmQuaAkyMDA2LTExLTEyIDE5OjMxOjIxLjAwMDAwMDAwMCAtMDIwMApAQCAtMjQ2LDYgKzI0
Niw4IEBACiAKIHRva2VuX3QJKmF1X3RvX2hlYWRlcjMyX3RtKGludCByZWNfc2l6ZSwgYXVfZXZl
bnRfdCBlX3R5cGUsIGF1X2Vtb2RfdCBlX21vZCwKIAkgICAgc3RydWN0IHRpbWV2YWwgdG0pOwor
dG9rZW5fdAkqYXVfdG9faGVhZGVyNjRfdG0oaW50IHJlY19zaXplLCBhdV9ldmVudF90IGVfdHlw
ZSwgYXVfZW1vZF90IGVfbW9kLAorCSAgICBzdHJ1Y3QgdGltZXZhbCB0bSk7CiAjaWYgIWRlZmlu
ZWQoS0VSTkVMKSAmJiAhZGVmaW5lZChfS0VSTkVMKQogdG9rZW5fdAkqYXVfdG9faGVhZGVyKGlu
dCByZWNfc2l6ZSwgYXVfZXZlbnRfdCBlX3R5cGUsIGF1X2Vtb2RfdCBlX21vZCk7CiB0b2tlbl90
CSphdV90b19oZWFkZXIzMihpbnQgcmVjX3NpemUsIGF1X2V2ZW50X3QgZV90eXBlLCBhdV9lbW9k
X3QgZV9tb2QpOwpkaWZmIC11IC1yIG9wZW5ic20vYnNtL2xpYmJzbS5oIG9wZW5ic20tZGdpYWdp
by9ic20vbGliYnNtLmgKLS0tIG9wZW5ic20vYnNtL2xpYmJzbS5oCTIwMDYtMDktMjQgMTc6MjA6
MDMuMDAwMDAwMDAwIC0wMzAwCisrKyBvcGVuYnNtLWRnaWFnaW8vYnNtL2xpYmJzbS5oCTIwMDYt
MTEtMTQgMjI6MTA6MjYuMDAwMDAwMDAwIC0wMjAwCkBAIC0xNjQsNiArMTY0LDEyIEBACiAJdV9p
bnQzMl90CWFkZHJbNF07CiB9IGF1X3RpZGFkZHIzMl90OwogCit0eXBlZGVmIHN0cnVjdCBhdV90
aWRhZGRyNjQgeworCXVfaW50NjRfdAlwb3J0OworCXVfaW50MzJfdAl0eXBlOworCXVfaW50MzJf
dAlhZGRyWzRdOworfSBhdV90aWRhZGRyNjRfdDsKKwogLyoKICAqIGFyZ3VtZW50ICMgICAgICAg
ICAgICAgIDEgYnl0ZQogICogYXJndW1lbnQgdmFsdWUgICAgICAgICAgNCBieXRlcy84IGJ5dGVz
ICgzMi1iaXQvNjQtYml0IHZhbHVlKQpAQCAtNDgzLDYgKzQ4OSwxNyBAQAogCWF1X3RpZGFkZHIz
Ml90CXRpZDsKIH0gYXVfcHJvYzMyZXhfdDsKIAordHlwZWRlZiBzdHJ1Y3QgeworCXVfaW50MzJf
dAlhdWlkOworCXVfaW50MzJfdAlldWlkOworCXVfaW50MzJfdAllZ2lkOworCXVfaW50MzJfdAly
dWlkOworCXVfaW50MzJfdAlyZ2lkOworCXVfaW50MzJfdAlwaWQ7CisJdV9pbnQzMl90CXNpZDsK
KwlhdV90aWRhZGRyNjRfdAl0aWQ7Cit9IGF1X3Byb2M2NGV4X3Q7CisKIC8qCiAgKiBlcnJvciBz
dGF0dXMgICAgICAgICAgICAxIGJ5dGUKICAqIHJldHVybiB2YWx1ZSAgICAgICAgICAgIDQgYnl0
ZXMvOCBieXRlcyAoMzItYml0LzY0LWJpdCB2YWx1ZSkKQEAgLTYxNiw2ICs2MzMsMTcgQEAKIAlh
dV90aWRhZGRyMzJfdAl0aWQ7CiB9IGF1X3N1YmplY3QzMmV4X3Q7CiAKK3R5cGVkZWYgc3RydWN0
IHsKKwl1X2ludDMyX3QJYXVpZDsKKwl1X2ludDMyX3QJZXVpZDsKKwl1X2ludDMyX3QJZWdpZDsK
Kwl1X2ludDMyX3QJcnVpZDsKKwl1X2ludDMyX3QJcmdpZDsKKwl1X2ludDMyX3QJcGlkOworCXVf
aW50MzJfdAlzaWQ7CisJYXVfdGlkYWRkcjY0X3QJdGlkOworfSBhdV9zdWJqZWN0NjRleF90Owor
CiAvKgogICogdGV4dCBsZW5ndGggICAgICAgICAgICAgMiBieXRlcwogICogdGV4dCAgICAgICAg
ICAgICAgICAgICAgTiBieXRlcyArIDEgdGVybWluYXRpbmcgTlVMTCBieXRlCkBAIC02NzUsOCAr
NzAzLDkgQEAKIAkJYXVfb3BhcXVlX3QJCW9wYXF1ZTsKIAkJYXVfcGF0aF90CQlwYXRoOwogCQlh
dV9wcm9jMzJfdAkJcHJvYzMyOwotCQlhdV9wcm9jNjRfdAkJcHJvYzY0OwogCQlhdV9wcm9jMzJl
eF90CQlwcm9jMzJfZXg7CisJCWF1X3Byb2M2NF90CQlwcm9jNjQ7CisJCWF1X3Byb2M2NGV4X3QJ
CXByb2M2NF9leDsKIAkJYXVfcmV0MzJfdAkJcmV0MzI7CiAJCWF1X3JldDY0X3QJCXJldDY0Owog
CQlhdV9zZXFfdAkJc2VxOwpAQCAtNjg1LDggKzcxNCw5IEBACiAJCWF1X3NvY2tldGluZXQzMl90
CXNvY2tpbmV0MzI7CiAJCWF1X3NvY2tldHVuaXhfdAkJc29ja3VuaXg7CiAJCWF1X3N1YmplY3Qz
Ml90CQlzdWJqMzI7Ci0JCWF1X3N1YmplY3Q2NF90CQlzdWJqNjQ7CiAJCWF1X3N1YmplY3QzMmV4
X3QJc3ViajMyX2V4OworCQlhdV9zdWJqZWN0NjRfdAkJc3ViajY0OworCQlhdV9zdWJqZWN0NjRl
eF90CXN1Ymo2NF9leDsKIAkJYXVfdGV4dF90CQl0ZXh0OwogCQlhdV9rZXZlbnRfdAkJa2V2ZW50
OwogCQlhdV9pbnZhbGlkX3QJCWludmFsaWQ7CmRpZmYgLXUgLXIgb3BlbmJzbS9saWJic20vYnNt
X2lvLmMgb3BlbmJzbS1kZ2lhZ2lvL2xpYmJzbS9ic21faW8uYwotLS0gb3BlbmJzbS9saWJic20v
YnNtX2lvLmMJMjAwNi0wOS0yNCAxNzoyMDoxMC4wMDAwMDAwMDAgLTAzMDAKKysrIG9wZW5ic20t
ZGdpYWdpby9saWJic20vYnNtX2lvLmMJMjAwNi0xMS0xNCAyMjowMToxMi4wMDAwMDAwMDAgLTAy
MDAKQEAgLTE3NzgsNiArMTc3OCwxMDUgQEAKIAlwcmludF9pcF9hZGRyZXNzKGZwLCB0b2stPnR0
LnByb2MzMi50aWQuYWRkcik7CiB9CiAKKy8qCisgKiB0b2tlbiBJRCAgICAgICAgICAgICAgICAg
ICAgIDEgYnl0ZQorICogYXVkaXQgSUQgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiBl
dWlkICAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMKKyAqIGVnaWQgICAgICAgICAgICAg
ICAgICAgICAgICAgNCBieXRlcworICogcnVpZCAgICAgICAgICAgICAgICAgICAgICAgICA0IGJ5
dGVzCisgKiByZ2lkICAgICAgICAgICAgICAgICAgICAgICAgIDQgYnl0ZXMKKyAqIHBpZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgNCBieXRlcworICogc2Vzc2lkICAgICAgICAgICAgICAgICAg
ICAgICA0IGJ5dGVzCisgKiB0ZXJtaW5hbCBJRAorICogICBwb3J0aWQgICAgICAgICAgICAgOCBi
eXRlcworICogICBtYWNoaW5lIGlkICAgICAgICAgNCBieXRlcworICovCitzdGF0aWMgaW50Citm
ZXRjaF9wcm9jZXNzNjRfdG9rKHRva2Vuc3RyX3QgKnRvaywgY2hhciAqYnVmLCBpbnQgbGVuKQor
eworCWludCBlcnIgPSAwOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0
LnByb2M2NC5hdWlkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsK
KworCVJFQURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5wcm9jNjQuZXVpZCwgdG9r
LT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1Vf
SU5UMzIoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0LmVnaWQsIHRvay0+bGVuLCBlcnIpOworCWlm
IChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0
b2stPnR0LnByb2M2NC5ydWlkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4g
KC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5wcm9jNjQucmdp
ZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RP
S0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0LnBpZCwgdG9rLT5sZW4sIGVycik7
CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBs
ZW4sIHRvay0+dHQucHJvYzY0LnNpZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0
dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UNjQoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0
LnRpZC5wb3J0LCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKwor
CVJFQURfVE9LRU5fQllURVMoYnVmLCBsZW4sICZ0b2stPnR0LnByb2M2NC50aWQuYWRkciwKKwkg
ICAgc2l6ZW9mKHRvay0+dHQucHJvYzY0LnRpZC5hZGRyKSwgdG9rLT5sZW4sIGVycik7CisJaWYg
KGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgdm9pZAor
cHJpbnRfcHJvY2VzczY0X3RvayhGSUxFICpmcCwgdG9rZW5zdHJfdCAqdG9rLCBjaGFyICpkZWws
IGNoYXIgcmF3LAorICAgIF9fdW51c2VkIGNoYXIgc2ZybSkKK3sKKworCXByaW50X3Rva190eXBl
KGZwLCB0b2stPmlkLCAicHJvY2VzcyIsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJ
cHJpbnRfdXNlcihmcCwgdG9rLT50dC5wcm9jNjQuYXVpZCwgcmF3KTsKKwlwcmludF9kZWxpbShm
cCwgZGVsKTsKKwlwcmludF91c2VyKGZwLCB0b2stPnR0LnByb2M2NC5ldWlkLCByYXcpOworCXBy
aW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X2dyb3VwKGZwLCB0b2stPnR0LnByb2M2NC5lZ2lk
LCByYXcpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X3VzZXIoZnAsIHRvay0+dHQu
cHJvYzY0LnJ1aWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfZ3JvdXAo
ZnAsIHRvay0+dHQucHJvYzY0LnJnaWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJ
cHJpbnRfNF9ieXRlcyhmcCwgdG9rLT50dC5wcm9jNjQucGlkLCAiJXUiKTsKKwlwcmludF9kZWxp
bShmcCwgZGVsKTsKKwlwcmludF80X2J5dGVzKGZwLCB0b2stPnR0LnByb2M2NC5zaWQsICIldSIp
OworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50XzhfYnl0ZXMoZnAsIHRvay0+dHQucHJv
YzY0LnRpZC5wb3J0LCAiJWxsdSIpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X2lw
X2FkZHJlc3MoZnAsIHRvay0+dHQucHJvYzY0LnRpZC5hZGRyKTsKK30KKworCisvKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgKiB0b2tlbiBJ
RCAgICAgICAgICAgICAgICAxIGJ5dGUgICAgICAgICAgICAgICAgICAgICAgCisgKiBhdWRpdCBJ
RCAgICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBlZmZlY3Rp
dmUgdXNlciBJRCAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBlZmZlY3Rp
dmUgZ3JvdXAgSUQgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiByZWFsIHVz
ZXIgSUQgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiByZWFsIGdy
b3VwIElEICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBwcm9jZXNz
IElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiBzZXNzaW9u
IElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiB0ZXJtaW5h
bCBJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgKiAgIHBvcnQg
SUQgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiAgIGFkZHJlc3MgdHlwZS1sZW4gICAgICA0IGJ5
dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiAgIG1hY2hpbmUgYWRkcmVzcyAgICAgIDE2IGJ5
dGVzICAgICAgICAgICAgICAgICAgICAgCisgKi8KIHN0YXRpYyBpbnQKIGZldGNoX3Byb2Nlc3Mz
MmV4X3Rvayh0b2tlbnN0cl90ICp0b2ssIGNoYXIgKmJ1ZiwgaW50IGxlbikKIHsKQEAgLTE4NjQs
NiArMTk2MywxMDYgQEAKIAkgICAgdG9rLT50dC5wcm9jMzJfZXgudGlkLmFkZHIpOwogfQogCisv
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg
KiB0b2tlbiBJRCAgICAgICAgICAgICAgICAxIGJ5dGUgICAgICAgICAgICAgICAgICAgICAgCisg
KiBhdWRpdCBJRCAgICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiBlZmZlY3RpdmUgdXNlciBJRCAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiBlZmZlY3RpdmUgZ3JvdXAgSUQgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiByZWFsIHVzZXIgSUQgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiByZWFsIGdyb3VwIElEICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiBwcm9jZXNzIElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiBzZXNzaW9uIElEICAgICAgICAgICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisg
KiB0ZXJtaW5hbCBJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg
KiAgIHBvcnQgSUQgICAgICAgICAgICAgICA4IGJ5dGVzCisgKiAgIGFkZHJlc3MgdHlwZS1sZW4g
ICAgICA0IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKiAgIG1hY2hpbmUgYWRkcmVzcyAg
ICAgIDE2IGJ5dGVzICAgICAgICAgICAgICAgICAgICAgCisgKi8KK3N0YXRpYyBpbnQKK2ZldGNo
X3Byb2Nlc3M2NGV4X3Rvayh0b2tlbnN0cl90ICp0b2ssIGNoYXIgKmJ1ZiwgaW50IGxlbikKK3sK
KwlpbnQgZXJyID0gMDsKKworCVJFQURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5w
cm9jNjRfZXguYXVpZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikKKwkJcmV0dXJuICgtMSk7
CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0X2V4LmV1aWQs
IHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tF
Tl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnByb2M2NF9leC5lZ2lkLCB0b2stPmxlbiwgZXJy
KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQzMihidWYs
IGxlbiwgdG9rLT50dC5wcm9jNjRfZXgucnVpZCwgdG9rLT5sZW4sIGVycik7CisJaWYgKGVycikK
KwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQu
cHJvYzY0X2V4LnJnaWQsIHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEp
OworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnByb2M2NF9leC5waWQs
IHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tF
Tl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnByb2M2NF9leC5zaWQsIHRvay0+bGVuLCBlcnIp
OworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDY0KGJ1Ziwg
bGVuLCB0b2stPnR0LnByb2M2NF9leC50aWQucG9ydCwgdG9rLT5sZW4sCisJICAgIGVycik7CisJ
aWYgKGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4s
IHRvay0+dHQucHJvYzY0X2V4LnRpZC50eXBlLCB0b2stPmxlbiwKKwkgICAgZXJyKTsKKwlpZiAo
ZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCWlmICh0b2stPnR0LnByb2M2NF9leC50aWQudHlwZSA9
PSBBVV9JUHY0KSB7CisJCVJFQURfVE9LRU5fQllURVMoYnVmLCBsZW4sICZ0b2stPnR0LnByb2M2
NF9leC50aWQuYWRkclswXSwKKwkJICAgIHNpemVvZih0b2stPnR0LnByb2M2NF9leC50aWQuYWRk
clswXSksIHRvay0+bGVuLCBlcnIpOworCQlpZiAoZXJyKQorCQkJcmV0dXJuICgtMSk7CisJfSBl
bHNlIGlmICh0b2stPnR0LnByb2M2NF9leC50aWQudHlwZSA9PSBBVV9JUHY2KSB7CisJCVJFQURf
VE9LRU5fQllURVMoYnVmLCBsZW4sIHRvay0+dHQucHJvYzY0X2V4LnRpZC5hZGRyLAorCQkgICAg
c2l6ZW9mKHRvay0+dHQucHJvYzY0X2V4LnRpZC5hZGRyKSwgdG9rLT5sZW4sIGVycik7CisJCWlm
IChlcnIpCisJCQlyZXR1cm4gKC0xKTsKKwl9IGVsc2UKKwkJcmV0dXJuICgtMSk7CisKKwlyZXR1
cm4gKDApOworfQorCitzdGF0aWMgdm9pZAorcHJpbnRfcHJvY2VzczY0ZXhfdG9rKEZJTEUgKmZw
LCB0b2tlbnN0cl90ICp0b2ssIGNoYXIgKmRlbCwgY2hhciByYXcsCisgICAgX191bnVzZWQgY2hh
ciBzZnJtKQoreworCisJcHJpbnRfdG9rX3R5cGUoZnAsIHRvay0+aWQsICJwcm9jZXNzX2V4Iiwg
cmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF91c2VyKGZwLCB0b2stPnR0LnBy
b2M2NF9leC5hdWlkLCByYXcpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X3VzZXIo
ZnAsIHRvay0+dHQucHJvYzY0X2V4LmV1aWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7
CisJcHJpbnRfZ3JvdXAoZnAsIHRvay0+dHQucHJvYzY0X2V4LmVnaWQsIHJhdyk7CisJcHJpbnRf
ZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfdXNlcihmcCwgdG9rLT50dC5wcm9jNjRfZXgucnVpZCwg
cmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF9ncm91cChmcCwgdG9rLT50dC5w
cm9jNjRfZXgucmdpZCwgcmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF80X2J5
dGVzKGZwLCB0b2stPnR0LnByb2M2NF9leC5waWQsICIldSIpOworCXByaW50X2RlbGltKGZwLCBk
ZWwpOworCXByaW50XzRfYnl0ZXMoZnAsIHRvay0+dHQucHJvYzY0X2V4LnNpZCwgIiV1Iik7CisJ
cHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfOF9ieXRlcyhmcCwgdG9rLT50dC5wcm9jNjRf
ZXgudGlkLnBvcnQsICIlbGx1Iik7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfaXBf
ZXhfYWRkcmVzcyhmcCwgdG9rLT50dC5wcm9jNjRfZXgudGlkLnR5cGUsCisJICAgIHRvay0+dHQu
cHJvYzY0X2V4LnRpZC5hZGRyKTsKK30KKwogLyoKICAqIGVycm5vICAgICAgICAgICAgICAgICAg
ICAgICAgMSBieXRlCiAgKiByZXR1cm4gdmFsdWUgICAgICAgICA0IGJ5dGVzCkBAIC0yMzQ4LDYg
KzI1NDcsMTA1IEBACiB9CiAKIC8qCisgKiBhdWRpdCBJRCAgICAgICAgICAgICAgICAgICAgIDQg
Ynl0ZXMKKyAqIGV1aWQgICAgICAgICAgICAgICAgICAgICAgICAgNCBieXRlcworICogZWdpZCAg
ICAgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiBydWlkICAgICAgICAgICAgICAgICAg
ICAgICAgIDQgYnl0ZXMKKyAqIHJnaWQgICAgICAgICAgICAgICAgICAgICAgICAgNCBieXRlcwor
ICogcGlkICAgICAgICAgICAgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiBzZXNzaWQgICAgICAg
ICAgICAgICAgICAgICAgIDQgYnl0ZXMKKyAqIHRlcm1pbmFsIElECisgKiAgIHBvcnRpZCAgICAg
ICAgICAgICA4IGJ5dGVzCisgKiAgIHR5cGUgICAgICAgICAgICAgICA0IGJ5dGVzCisgKiAgIG1h
Y2hpbmUgaWQgICAgICAgICAxNiBieXRlcworICovCitzdGF0aWMgaW50CitmZXRjaF9zdWJqZWN0
NjRleF90b2sodG9rZW5zdHJfdCAqdG9rLCBjaGFyICpidWYsIGludCBsZW4pCit7CisJaW50IGVy
ciA9IDA7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRvay0+dHQuc3ViajY0X2V4
LmF1aWQsIHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVybiAoLTEpOworCisJUkVB
RF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnN1Ymo2NF9leC5ldWlkLCB0b2stPmxl
biwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQz
MihidWYsIGxlbiwgdG9rLT50dC5zdWJqNjRfZXguZWdpZCwgdG9rLT5sZW4sIGVycik7CisJaWYg
KGVycikKKwkJcmV0dXJuICgtMSk7CisKKwlSRUFEX1RPS0VOX1VfSU5UMzIoYnVmLCBsZW4sIHRv
ay0+dHQuc3ViajY0X2V4LnJ1aWQsIHRvay0+bGVuLCBlcnIpOworCWlmIChlcnIpCisJCXJldHVy
biAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0LnN1Ymo2NF9l
eC5yZ2lkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJF
QURfVE9LRU5fVV9JTlQzMihidWYsIGxlbiwgdG9rLT50dC5zdWJqNjRfZXgucGlkLCB0b2stPmxl
biwgZXJyKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQz
MihidWYsIGxlbiwgdG9rLT50dC5zdWJqNjRfZXguc2lkLCB0b2stPmxlbiwgZXJyKTsKKwlpZiAo
ZXJyKQorCQlyZXR1cm4gKC0xKTsKKworCVJFQURfVE9LRU5fVV9JTlQ2NChidWYsIGxlbiwgdG9r
LT50dC5zdWJqNjRfZXgudGlkLnBvcnQsIHRvay0+bGVuLAorCSAgICBlcnIpOworCWlmIChlcnIp
CisJCXJldHVybiAoLTEpOworCisJUkVBRF9UT0tFTl9VX0lOVDMyKGJ1ZiwgbGVuLCB0b2stPnR0
LnN1Ymo2NF9leC50aWQudHlwZSwgdG9rLT5sZW4sCisJICAgIGVycik7CisJaWYgKGVycikKKwkJ
cmV0dXJuICgtMSk7CisKKwlpZiAodG9rLT50dC5zdWJqNjRfZXgudGlkLnR5cGUgPT0gQVVfSVB2
NCkgeworCQlSRUFEX1RPS0VOX0JZVEVTKGJ1ZiwgbGVuLCAmdG9rLT50dC5zdWJqNjRfZXgudGlk
LmFkZHJbMF0sCisJCSAgICBzaXplb2YodG9rLT50dC5zdWJqNjRfZXgudGlkLmFkZHJbMF0pLCB0
b2stPmxlbiwgZXJyKTsKKwkJaWYgKGVycikKKwkJCXJldHVybiAoLTEpOworCX0gZWxzZSBpZiAo
dG9rLT50dC5zdWJqNjRfZXgudGlkLnR5cGUgPT0gQVVfSVB2NikgeworCQlSRUFEX1RPS0VOX0JZ
VEVTKGJ1ZiwgbGVuLCB0b2stPnR0LnN1Ymo2NF9leC50aWQuYWRkciwKKwkJICAgIHNpemVvZih0
b2stPnR0LnN1Ymo2NF9leC50aWQuYWRkciksIHRvay0+bGVuLCBlcnIpOworCQlpZiAoZXJyKQor
CQkJcmV0dXJuICgtMSk7CisJfSBlbHNlCisJCXJldHVybiAoLTEpOworCisJcmV0dXJuICgwKTsK
K30KKworc3RhdGljIHZvaWQKK3ByaW50X3N1YmplY3Q2NGV4X3RvayhGSUxFICpmcCwgdG9rZW5z
dHJfdCAqdG9rLCBjaGFyICpkZWwsIGNoYXIgcmF3LAorICAgIF9fdW51c2VkIGNoYXIgc2ZybSkK
K3sKKworCXByaW50X3Rva190eXBlKGZwLCB0b2stPmlkLCAic3ViamVjdF9leCIsIHJhdyk7CisJ
cHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfdXNlcihmcCwgdG9rLT50dC5zdWJqNjRfZXgu
YXVpZCwgcmF3KTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlwcmludF91c2VyKGZwLCB0b2st
PnR0LnN1Ymo2NF9leC5ldWlkLCByYXcpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50
X2dyb3VwKGZwLCB0b2stPnR0LnN1Ymo2NF9leC5lZ2lkLCByYXcpOworCXByaW50X2RlbGltKGZw
LCBkZWwpOworCXByaW50X3VzZXIoZnAsIHRvay0+dHQuc3ViajY0X2V4LnJ1aWQsIHJhdyk7CisJ
cHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfZ3JvdXAoZnAsIHRvay0+dHQuc3ViajY0X2V4
LnJnaWQsIHJhdyk7CisJcHJpbnRfZGVsaW0oZnAsIGRlbCk7CisJcHJpbnRfNF9ieXRlcyhmcCwg
dG9rLT50dC5zdWJqNjRfZXgucGlkLCAiJXUiKTsKKwlwcmludF9kZWxpbShmcCwgZGVsKTsKKwlw
cmludF80X2J5dGVzKGZwLCB0b2stPnR0LnN1Ymo2NF9leC5zaWQsICIldSIpOworCXByaW50X2Rl
bGltKGZwLCBkZWwpOworCXByaW50XzhfYnl0ZXMoZnAsIHRvay0+dHQuc3ViajY0X2V4LnRpZC5w
b3J0LCAiJWxsdSIpOworCXByaW50X2RlbGltKGZwLCBkZWwpOworCXByaW50X2lwX2V4X2FkZHJl
c3MoZnAsIHRvay0+dHQuc3ViajY0X2V4LnRpZC50eXBlLAorCSAgICB0b2stPnR0LnN1Ymo2NF9l
eC50aWQuYWRkcik7Cit9CisKKy8qCiAgKiBzaXplICAgICAgICAgICAgICAgICAgICAgICAgIDIg
Ynl0ZXMKICAqIGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBieXRlcwogICovCkBA
IC0yNTY1LDYgKzI4NjMsMTIgQEAKIAljYXNlIEFVVF9QUk9DRVNTMzJfRVg6CiAJCXJldHVybiAo
ZmV0Y2hfcHJvY2VzczMyZXhfdG9rKHRvaywgYnVmLCBsZW4pKTsKIAorCWNhc2UgQVVUX1BST0NF
U1M2NDoKKwkJcmV0dXJuIChmZXRjaF9wcm9jZXNzNjRfdG9rKHRvaywgYnVmLCBsZW4pKTsKKwor
CWNhc2UgQVVUX1BST0NFU1M2NF9FWDoKKwkJcmV0dXJuIChmZXRjaF9wcm9jZXNzNjRleF90b2so
dG9rLCBidWYsIGxlbikpOworCiAJY2FzZSBBVVRfUkVUVVJOMzI6CiAJCXJldHVybiAoZmV0Y2hf
cmV0dXJuMzJfdG9rKHRvaywgYnVmLCBsZW4pKTsKIApAQCAtMjU4NiwxMSArMjg5MCwxNCBAQAog
CWNhc2UgQVVUX1NVQkpFQ1QzMjoKIAkJcmV0dXJuIChmZXRjaF9zdWJqZWN0MzJfdG9rKHRvaywg
YnVmLCBsZW4pKTsKIAorCWNhc2UgQVVUX1NVQkpFQ1QzMl9FWDoKKwkJcmV0dXJuIChmZXRjaF9z
dWJqZWN0MzJleF90b2sodG9rLCBidWYsIGxlbikpOworCiAJY2FzZSBBVVRfU1VCSkVDVDY0Ogog
CQlyZXR1cm4gKGZldGNoX3N1YmplY3Q2NF90b2sodG9rLCBidWYsIGxlbikpOwogCi0JY2FzZSBB
VVRfU1VCSkVDVDMyX0VYOgotCQlyZXR1cm4gKGZldGNoX3N1YmplY3QzMmV4X3Rvayh0b2ssIGJ1
ZiwgbGVuKSk7CisJY2FzZSBBVVRfU1VCSkVDVDY0X0VYOgorCQlyZXR1cm4gKGZldGNoX3N1Ympl
Y3Q2NGV4X3Rvayh0b2ssIGJ1ZiwgbGVuKSk7CiAKIAljYXNlIEFVVF9URVhUOgogCQlyZXR1cm4g
KGZldGNoX3RleHRfdG9rKHRvaywgYnVmLCBsZW4pKTsKQEAgLTI3MTQsNiArMzAyMSwxNCBAQAog
CQlwcmludF9wcm9jZXNzMzJleF90b2sob3V0ZnAsIHRvaywgZGVsLCByYXcsIHNmcm0pOwogCQly
ZXR1cm47CiAKKwljYXNlIEFVVF9QUk9DRVNTNjQ6CisJCXByaW50X3Byb2Nlc3M2NF90b2sob3V0
ZnAsIHRvaywgZGVsLCByYXcsIHNmcm0pOworCQlyZXR1cm47CisKKwljYXNlIEFVVF9QUk9DRVNT
NjRfRVg6CisJCXByaW50X3Byb2Nlc3M2NGV4X3RvayhvdXRmcCwgdG9rLCBkZWwsIHJhdywgc2Zy
bSk7CisJCXJldHVybjsKKwogCWNhc2UgQVVUX1JFVFVSTjMyOgogCQlwcmludF9yZXR1cm4zMl90
b2sob3V0ZnAsIHRvaywgZGVsLCByYXcsIHNmcm0pOwogCQlyZXR1cm47CkBAIC0yNzQyLDEyICsz
MDU3LDE2IEBACiAJCXByaW50X3N1YmplY3QzMl90b2sob3V0ZnAsIHRvaywgZGVsLCByYXcsIHNm
cm0pOwogCQlyZXR1cm47CiAKKwljYXNlIEFVVF9TVUJKRUNUMzJfRVg6CisJCXByaW50X3N1Ympl
Y3QzMmV4X3RvayhvdXRmcCwgdG9rLCBkZWwsIHJhdywgc2ZybSk7CisJCXJldHVybjsKKwogCWNh
c2UgQVVUX1NVQkpFQ1Q2NDoKIAkJcHJpbnRfc3ViamVjdDY0X3RvayhvdXRmcCwgdG9rLCBkZWws
IHJhdywgc2ZybSk7CiAJCXJldHVybjsKIAotCWNhc2UgQVVUX1NVQkpFQ1QzMl9FWDoKLQkJcHJp
bnRfc3ViamVjdDMyZXhfdG9rKG91dGZwLCB0b2ssIGRlbCwgcmF3LCBzZnJtKTsKKwljYXNlIEFV
VF9TVUJKRUNUNjRfRVg6CisJCXByaW50X3N1YmplY3Q2NGV4X3RvayhvdXRmcCwgdG9rLCBkZWws
IHJhdywgc2ZybSk7CiAJCXJldHVybjsKIAogCWNhc2UgQVVUX1RFWFQ6CmRpZmYgLXUgLXIgb3Bl
bmJzbS9saWJic20vYnNtX3Rva2VuLmMgb3BlbmJzbS1kZ2lhZ2lvL2xpYmJzbS9ic21fdG9rZW4u
YwotLS0gb3BlbmJzbS9saWJic20vYnNtX3Rva2VuLmMJMjAwNi0wOS0yNCAxNzoyMDoxMS4wMDAw
MDAwMDAgLTAzMDAKKysrIG9wZW5ic20tZGdpYWdpby9saWJic20vYnNtX3Rva2VuLmMJMjAwNi0x
MS0xMiAxOTozMToyMS4wMDAwMDAwMDAgLTAyMDAKQEAgLTIxMiw5ICsyMTIsNDYgQEAKIHRva2Vu
X3QgKgogYXVfdG9fYXR0cjY0KHN0cnVjdCB2bm9kZV9hdV9pbmZvICp2bmkpCiB7CisJdG9rZW5f
dCAqdDsKKwl1X2NoYXIgKmRwdHIgPSBOVUxMOworCXVfaW50MTZfdCBwYWQwXzE2ID0gMDsKKwl1
X2ludDE2X3QgcGFkMF8zMiA9IDA7CisKKwlHRVRfVE9LRU5fQVJFQSh0LCBkcHRyLCBzaXplb2Yo
dV9jaGFyKSArIDIgKiBzaXplb2YodV9pbnQxNl90KSArCisJICAgIDMgKiBzaXplb2YodV9pbnQz
Ml90KSArIHNpemVvZih1X2ludDY0X3QpICogMik7CisJaWYgKHQgPT0gTlVMTCkKKwkJcmV0dXJu
IChOVUxMKTsKKworCUFERF9VX0NIQVIoZHB0ciwgQVVUX0FUVFI2NCk7CisKKwkvKgorCSAqIERh
cndpbiBkZWZpbmVzIHRoZSBzaXplIGZvciB0aGUgZmlsZSBtb2RlCisJICogYXMgMiBieXRlczsg
QlNNIGRlZmluZXMgNCBzbyBwYWQgd2l0aCAwCisJICovCisJQUREX1VfSU5UMTYoZHB0ciwgcGFk
MF8xNik7CisJQUREX1VfSU5UMTYoZHB0ciwgdm5pLT52bl9tb2RlKTsKKworCUFERF9VX0lOVDMy
KGRwdHIsIHZuaS0+dm5fdWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCB2bmktPnZuX2dpZCk7CisJ
QUREX1VfSU5UMzIoZHB0ciwgdm5pLT52bl9mc2lkKTsKKworCS8qCisJICogU29tZSBzeXN0ZW1z
IHVzZSAzMi1iaXQgZmlsZSBJRCdzLCBvdGhlcidzIHVzZSA2NC1iaXQgZmlsZSBJRHMuCisJICog
QXR0ZW1wdCB0byBoYW5kbGUgYm90aCwgYW5kIGxldCB0aGUgY29tcGlsZXIgc29ydCBpdCBvdXQu
ICBJZiB3ZQorCSAqIGNvdWxkIHBpY2sgdGhpcyBvdXQgYXQgY29tcGlsZS10aW1lLCBpdCB3b3Vs
ZCBiZSBiZXR0ZXIsIHNvIGFzIHRvCisJICogYXZvaWQgdGhlIGVsc2UgY2FzZSBiZWxvdy4KKwkg
Ki8KKwlpZiAoc2l6ZW9mKHZuaS0+dm5fZmlsZWlkKSA9PSBzaXplb2YodWludDMyX3QpKSB7CisJ
CUFERF9VX0lOVDMyKGRwdHIsIHBhZDBfMzIpOworCQlBRERfVV9JTlQzMihkcHRyLCB2bmktPnZu
X2ZpbGVpZCk7CisJfSBlbHNlIGlmIChzaXplb2Yodm5pLT52bl9maWxlaWQpID09IHNpemVvZih1
aW50NjRfdCkpCisJCUFERF9VX0lOVDY0KGRwdHIsIHZuaS0+dm5fZmlsZWlkKTsKKwllbHNlCisJ
CUFERF9VX0lOVDY0KGRwdHIsIDBMTCk7CiAKLQllcnJubyA9IEVOT1RTVVA7Ci0JcmV0dXJuIChO
VUxMKTsKKwlBRERfVV9JTlQ2NChkcHRyLCB2bmktPnZuX2Rldik7CisKKwlyZXR1cm4gKHQpOwog
fQogCiB0b2tlbl90ICoKQEAgLTY1NCw5ICs2OTEsMjYgQEAKICAgICBfX3VudXNlZCBnaWRfdCBl
Z2lkLCBfX3VudXNlZCB1aWRfdCBydWlkLCBfX3VudXNlZCBnaWRfdCByZ2lkLAogICAgIF9fdW51
c2VkIHBpZF90IHBpZCwgX191bnVzZWQgYXVfYXNpZF90IHNpZCwgX191bnVzZWQgYXVfdGlkX3Qg
KnRpZCkKIHsKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5VTEw7CisKKwlHRVRfVE9L
RU5fQVJFQSh0LCBkcHRyLCBzaXplb2YodV9jaGFyKSArIDggKiBzaXplb2YodV9pbnQzMl90KSAr
CisJICAgIHNpemVvZih1X2ludDY0X3QpKTsKKwlpZiAodCA9PSBOVUxMKQorCQlyZXR1cm4gKE5V
TEwpOworCisJQUREX1VfQ0hBUihkcHRyLCBBVVRfUFJPQ0VTUzY0KTsKKwlBRERfVV9JTlQzMihk
cHRyLCBhdWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBldWlkKTsKKwlBRERfVV9JTlQzMihkcHRy
LCBlZ2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBydWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBy
Z2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBwaWQpOworCUFERF9VX0lOVDMyKGRwdHIsIHNpZCk7
CisJQUREX1VfSU5UNjQoZHB0ciwgdGlkLT5wb3J0KTsKKwlBRERfTUVNKGRwdHIsICZ0aWQtPm1h
Y2hpbmUsIHNpemVvZih1X2ludDMyX3QpKTsKIAotCWVycm5vID0gRU5PVFNVUDsKLQlyZXR1cm4g
KE5VTEwpOworCXJldHVybiAodCk7CiB9CiAKIHRva2VuX3QgKgpAQCAtNzI3LDkgKzc4MSw0MiBA
QAogYXVfdG9fcHJvY2VzczY0X2V4KGF1X2lkX3QgYXVpZCwgdWlkX3QgZXVpZCwgZ2lkX3QgZWdp
ZCwgdWlkX3QgcnVpZCwKICAgICBnaWRfdCByZ2lkLCBwaWRfdCBwaWQsIGF1X2FzaWRfdCBzaWQs
IGF1X3RpZF9hZGRyX3QgKnRpZCkKIHsKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5V
TEw7CisKKwlpZiAodGlkLT5hdF90eXBlID09IEFVX0lQdjQpCisJCUdFVF9UT0tFTl9BUkVBKHQs
IGRwdHIsIHNpemVvZih1X2NoYXIpICsgCisJCSAgICA3ICogc2l6ZW9mKHVfaW50MzJfdCkgKyBz
aXplb2YodV9pbnQ2NF90KSArCisJCSAgICAyICogc2l6ZW9mKHVfaW50MzJfdCkpOworCWVsc2Ug
aWYgKHRpZC0+YXRfdHlwZSA9PSBBVV9JUHY2KQorCQlHRVRfVE9LRU5fQVJFQSh0LCBkcHRyLCBz
aXplb2YodV9jaGFyKSArCisJCSAgICA3ICogc2l6ZW9mKHVfaW50MzJfdCkgKyBzaXplb2YodV9p
bnQ2NF90KSArCisJCSAgICA1ICogc2l6ZW9mKHVfaW50MzJfdCkpOworCWVsc2UgeworCQllcnJu
byA9IEVJTlZBTDsKKwkJcmV0dXJuIChOVUxMKTsKKwl9CisJaWYgKHQgPT0gTlVMTCkKKwkJcmV0
dXJuIChOVUxMKTsKKworCUFERF9VX0NIQVIoZHB0ciwgQVVUX1BST0NFU1M2NF9FWCk7CisJQURE
X1VfSU5UMzIoZHB0ciwgYXVpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgZXVpZCk7CisJQUREX1Vf
SU5UMzIoZHB0ciwgZWdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcnVpZCk7CisJQUREX1VfSU5U
MzIoZHB0ciwgcmdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcGlkKTsKKwlBRERfVV9JTlQzMihk
cHRyLCBzaWQpOworCUFERF9VX0lOVDY0KGRwdHIsIHRpZC0+YXRfcG9ydCk7CisJQUREX1VfSU5U
MzIoZHB0ciwgdGlkLT5hdF90eXBlKTsKKwlBRERfVV9JTlQzMihkcHRyLCB0aWQtPmF0X2FkZHJb
MF0pOworCWlmICh0aWQtPmF0X3R5cGUgPT0gQVVfSVB2NikgeworCQlBRERfVV9JTlQzMihkcHRy
LCB0aWQtPmF0X2FkZHJbMV0pOworCQlBRERfVV9JTlQzMihkcHRyLCB0aWQtPmF0X2FkZHJbMl0p
OworCQlBRERfVV9JTlQzMihkcHRyLCB0aWQtPmF0X2FkZHJbM10pOworCX0KIAotCWVycm5vID0g
RU5PVFNVUDsKLQlyZXR1cm4gKE5VTEwpOworCXJldHVybiAodCk7CiB9CiAKIHRva2VuX3QgKgpA
QCAtOTQ0LDkgKzEwMzEsMjYgQEAKIGF1X3RvX3N1YmplY3Q2NChhdV9pZF90IGF1aWQsIHVpZF90
IGV1aWQsIGdpZF90IGVnaWQsIHVpZF90IHJ1aWQsIGdpZF90IHJnaWQsCiAgICAgcGlkX3QgcGlk
LCBhdV9hc2lkX3Qgc2lkLCBhdV90aWRfdCAqdGlkKQogeworCXRva2VuX3QgKnQ7CisJdV9jaGFy
ICpkcHRyID0gTlVMTDsKKworCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNpemVvZih1X2NoYXIp
ICsgNyAqIHNpemVvZih1X2ludDMyX3QpICsKKwkgICAgc2l6ZW9mKHVfaW50NjRfdCkgKyBzaXpl
b2YodV9pbnQzMl90KSk7CisJaWYgKHQgPT0gTlVMTCkKKwkJcmV0dXJuIChOVUxMKTsKIAotCWVy
cm5vID0gRU5PVFNVUDsKLQlyZXR1cm4gKE5VTEwpOworCUFERF9VX0NIQVIoZHB0ciwgQVVUX1NV
QkpFQ1Q2NCk7CisJQUREX1VfSU5UMzIoZHB0ciwgYXVpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwg
ZXVpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgZWdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcnVp
ZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcmdpZCk7CisJQUREX1VfSU5UMzIoZHB0ciwgcGlkKTsK
KwlBRERfVV9JTlQzMihkcHRyLCBzaWQpOworCUFERF9VX0lOVDY0KGRwdHIsIHRpZC0+cG9ydCk7
CisJQUREX01FTShkcHRyLCAmdGlkLT5tYWNoaW5lLCBzaXplb2YodV9pbnQzMl90KSk7CisKKwly
ZXR1cm4gKHQpOwogfQogCiB0b2tlbl90ICoKQEAgLTEwMTYsOSArMTEyMCw0MiBAQAogYXVfdG9f
c3ViamVjdDY0X2V4KGF1X2lkX3QgYXVpZCwgdWlkX3QgZXVpZCwgZ2lkX3QgZWdpZCwgdWlkX3Qg
cnVpZCwKICAgICBnaWRfdCByZ2lkLCBwaWRfdCBwaWQsIGF1X2FzaWRfdCBzaWQsIGF1X3RpZF9h
ZGRyX3QgKnRpZCkKIHsKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5VTEw7CisKKwlp
ZiAodGlkLT5hdF90eXBlID09IEFVX0lQdjQpCisJCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNp
emVvZih1X2NoYXIpICsKKwkJICAgIDcgKiBzaXplb2YodV9pbnQzMl90KSArIHNpemVvZih1X2lu
dDY0X3QpICsKKwkJICAgIDIgKiBzaXplb2YodV9pbnQzMl90KSk7CisJZWxzZSBpZiAodGlkLT5h
dF90eXBlID09IEFVX0lQdjYpCisJCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNpemVvZih1X2No
YXIpICsKKwkJICAgIDcgKiBzaXplb2YodV9pbnQzMl90KSArIHNpemVvZih1X2ludDY0X3QpICsK
KwkJICAgIDUgKiBzaXplb2YodV9pbnQzMl90KSk7CisJZWxzZSB7CisJCWVycm5vID0gRUlOVkFM
OworCQlyZXR1cm4gKE5VTEwpOworCX0KKwlpZiAodCA9PSBOVUxMKQorCQlyZXR1cm4gKE5VTEwp
OworCisJQUREX1VfQ0hBUihkcHRyLCBBVVRfU1VCSkVDVDY0X0VYKTsKKwlBRERfVV9JTlQzMihk
cHRyLCBhdWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBldWlkKTsKKwlBRERfVV9JTlQzMihkcHRy
LCBlZ2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBydWlkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBy
Z2lkKTsKKwlBRERfVV9JTlQzMihkcHRyLCBwaWQpOworCUFERF9VX0lOVDMyKGRwdHIsIHNpZCk7
CisJQUREX1VfSU5UNjQoZHB0ciwgdGlkLT5hdF9wb3J0KTsKKwlBRERfVV9JTlQzMihkcHRyLCB0
aWQtPmF0X3R5cGUpOworCUFERF9VX0lOVDMyKGRwdHIsIHRpZC0+YXRfYWRkclswXSk7CisJaWYg
KHRpZC0+YXRfdHlwZSA9PSBBVV9JUHY2KSB7CisJCUFERF9VX0lOVDMyKGRwdHIsIHRpZC0+YXRf
YWRkclsxXSk7CisJCUFERF9VX0lOVDMyKGRwdHIsIHRpZC0+YXRfYWRkclsyXSk7CisJCUFERF9V
X0lOVDMyKGRwdHIsIHRpZC0+YXRfYWRkclszXSk7CisJfQogCi0JZXJybm8gPSBFTk9UU1VQOwot
CXJldHVybiAoTlVMTCk7CisJcmV0dXJuICh0KTsKIH0KIAogdG9rZW5fdCAqCkBAIC0xMTY2LDYg
KzEzMDMsMzMgQEAKIAlyZXR1cm4gKHQpOwogfQogCit0b2tlbl90ICoKK2F1X3RvX2hlYWRlcjY0
X3RtKGludCByZWNfc2l6ZSwgYXVfZXZlbnRfdCBlX3R5cGUsIGF1X2Vtb2RfdCBlX21vZCwKKyAg
ICBzdHJ1Y3QgdGltZXZhbCB0bSkKK3sKKwl0b2tlbl90ICp0OworCXVfY2hhciAqZHB0ciA9IE5V
TEw7CisJdV9pbnQzMl90IHRpbWVtczsKKworCUdFVF9UT0tFTl9BUkVBKHQsIGRwdHIsIHNpemVv
Zih1X2NoYXIpICsgc2l6ZW9mKHVfaW50MzJfdCkgKworCSAgICBzaXplb2YodV9jaGFyKSArIDIg
KiBzaXplb2YodV9pbnQxNl90KSArIDIgKiBzaXplb2YodV9pbnQ2NF90KSk7CisJaWYgKHQgPT0g
TlVMTCkKKwkJcmV0dXJuIChOVUxMKTsKKworCUFERF9VX0NIQVIoZHB0ciwgQVVUX0hFQURFUjY0
KTsKKwlBRERfVV9JTlQzMihkcHRyLCByZWNfc2l6ZSk7CisJQUREX1VfQ0hBUihkcHRyLCBBVURJ
VF9IRUFERVJfVkVSU0lPTl9PUEVOQlNNKTsKKwlBRERfVV9JTlQxNihkcHRyLCBlX3R5cGUpOwor
CUFERF9VX0lOVDE2KGRwdHIsIGVfbW9kKTsKKworCXRpbWVtcyA9IHRtLnR2X3VzZWMvMTAwMDsK
KwkvKiBBZGQgdGhlIHRpbWVzdGFtcCAqLworCUFERF9VX0lOVDY0KGRwdHIsIHRtLnR2X3NlYyk7
CisJQUREX1VfSU5UNjQoZHB0ciwgdGltZW1zKTsJLyogV2UgbmVlZCB0aW1lIGluIG1zLiAqLwor
CisJcmV0dXJuICh0KTsKK30KKwogI2lmICFkZWZpbmVkKEtFUk5FTCkgJiYgIWRlZmluZWQoX0tF
Uk5FTCkKIHRva2VuX3QgKgogYXVfdG9faGVhZGVyMzIoaW50IHJlY19zaXplLCBhdV9ldmVudF90
IGVfdHlwZSwgYXVfZW1vZF90IGVfbW9kKQpAQCAtMTE4MSw5ICsxMzQ1LDExIEBACiBhdV90b19o
ZWFkZXI2NChfX3VudXNlZCBpbnQgcmVjX3NpemUsIF9fdW51c2VkIGF1X2V2ZW50X3QgZV90eXBl
LAogICAgIF9fdW51c2VkIGF1X2Vtb2RfdCBlX21vZCkKIHsKKwlzdHJ1Y3QgdGltZXZhbCB0bTsK
IAotCWVycm5vID0gRU5PVFNVUDsKLQlyZXR1cm4gKE5VTEwpOworCWlmIChnZXR0aW1lb2ZkYXko
JnRtLCBOVUxMKSA9PSAtMSkKKwkJcmV0dXJuIChOVUxMKTsKKwlyZXR1cm4gKGF1X3RvX2hlYWRl
cjY0X3RtKHJlY19zaXplLCBlX3R5cGUsIGVfbW9kLCB0bSkpOwogfQogCiB0b2tlbl90ICoK
------=_Part_18902_5933769.1163550070888--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1b0798830611141621s49b30399l68a2241be3e91dc3>