Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Jul 2007 16:35:27 +0300
From:      Oleg <agile.quad@gmail.com>
To:        freebsd-net@freebsd.org
Subject:   reincarnation of bug kern/95665: [if_tun] "ping: sendto: No buffer space available"
Message-ID:  <d0fcb8ea0707270635k5c260c8fvf0dc55257782591b@mail.gmail.com>

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

Hi All,

I can reproduce this bug easly with tap echo server (attached here), that I
was small reworked.

steps (almost same):
(All ip addresses/macs hardcoded in code).

On first machine run echo server, on second add

root@pc2# route add -net 192.168.125.1/24 ip-addr-of-first-machine

and

root@pc2# ping -f -n 192.168.125.2

While flood pinging, on first machine run ping for checking:

root@pc1#  ping 192.168.125.2
PING 192.168.125.2 (192.168.125.2): 56 data bytes
64 bytes from 192.168.125.2 : icmp_seq=0 ttl=64 time=0.554 ms
64 bytes from 192.168.125.2: icmp_seq=1 ttl=64 time=0.180 ms
...
wait for a while
...
ping: sendto: No buffer space available
ping: sendto: No buffer space available
ping: sendto: No buffer space available

With best regards,
    Oleg Dolgov.

------=_Part_5712_30337467.1185543327669
Content-Type: application/octet-stream; name=tun_icmp_echo_reply.c
Content-Transfer-Encoding: base64
X-Attachment-Id: f_f4mpfgml
Content-Disposition: attachment; filename="tun_icmp_echo_reply.c"

LyoKUGluZyByZXBseSBzZXJ2ZXI6LSkgdXNpbmcgVFVOIChGcmVlQlNEIDYuMCkuCgpUZXN0IG9y
aWdpbmFsbHkgbWFkZSB0byB0ZXN0IHRoZSB0aHJvdXB1dCBvZiBUVU4gdXNpbmcgJ3BpbmcnIGlu
IGZsb29kCnBpbmcgbW9kZS4gSG93ZXZlciB0aGVyZSBzZWVtcyB0byBiZSBhIGJ1ZyBpbiBGcmVl
QlNEIHRoYXQgd2hlbiBzZW5kaW5nCmEgbWFzc2l2ZSBhbW91bnQgb2YgcmVxdWVzdHMgdG8gdGhl
IG9wZW5lZCBUVU4gaW50ZXJmYWNlIGl0IHdpbGwgImhhbmciLgpQaW5nIHdpbGwgc2F5ICJwaW5n
OiBzZW5kdG86IE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUiCgpJIGhhdmUgc2VhcmNoZWQgZ29v
Z2xlIGZvciB0aGlzIGVycm9yIGFuZCBtYW55IHBlb3BsZSBoYXZlIHJlcG9ydGVkIGl0CndpdGgg
bm8gc29sdXRpb24gcHJlc2VudGVkLiBUaGUgcHJvYmxlbSBzZWVtIHRvIGV4aXN0IGZvciBhIG51
bWJlciBvZgpuZXR3b3JrIGRyaXZlcnMgKEkgc3VmZmVyIHRoaXMgd2l0aCB0aGUgbnZlIGRyaXZl
ciBhcyB3ZWxsKS4gVGhpcyBpcwphIHNpbXBsZSB0ZXN0IHByb2dyYW0gdG8gcHJvZHVjZSB0aGlz
IGJ1ZyB3aXRoIGEgVFVOIGludGVyZmFjZS4KClRoaXMgdGVzdCBhc3N1bWVzIHlvdSBoYXZlIGEg
bGFuIHdpdGggdHdvIFBDcy4gVGhlIEZyZWVCU0QgYm94IGlzIFBDMS4KCiAgKy0tIExBTiAtLSsK
ICB8ICAgICAgICAgfAogUEMxICAgICAgIFBDMgoKSSdtIGxhenkgc28gdG8gY29uZmlndXJlIHRo
ZSBUVU4gaW50ZXJmYWNlIG9uIFBDMSBkbzoKIyBzeXNjdGwgbmV0LmluZXQuaXAuZm9yd2FyZGlu
Zz0xCiMgY2F0IC9kZXYvdGFwCiMgXkMKIyBpZmNvbmZpZwoKWW91IHNob3VsZCBzZWUgYXQgbGVh
c3Qgb25lIHRhcCBpbnRlcmZhY2UgbGlzdGVkLiBSZXBsYWNlIHRoZQpkZWZpbmUgVFVOX0RFVklD
RSBpbiB0aGlzIGZpbGUgd2l0aCB0aGUgbGlzdGVkIGludGVyZmFjZS4gZS5nLgovZGV2L3RhcDEK
CkNvbXBpbGUgdGhpcyBmaWxlIGxpa2UgdGhpczoKIyBnY2MgLW8gdGFwX2ljbXBfZWNob19yZXBs
eSB0dW5faWNtcF9lY2hvX3JlcGx5LmMKClJ1biB0aGUgcHJvZ3JhbToKIyAuL3RhcF9pY21wX2Vj
aG9fcmVwbHkKCkNvbmZpZ3VyZSB0aGUgVFVOIGludGVyZmFjZS4gVGhlIHJlYXNvbiBpdCdzIGRv
bmUgbm93IGlzIGJlY2F1c2Ugd2hlbgp0aGUgVFVOIGRldmljZSBpcyBvcGVuZWQgYnkgdGhlIHBy
b2dyYW0gdGhlIHJvdXRlIGlzIHJlbW92ZWQuCgpUaGUgSVAgYWRkcmVzcyAxMC4wLjAuNCBzaG91
bGQgYmUgcmVwbGFjZWQgYnkgdGhlIElQIGFkZHJlc3Mgb2YgdGhlCmV4dGVybmFsIGludGVyZmFj
ZSBvZiBQQzEuCgojIGlmY29uZmlnIHRhcDEgaW5ldCAxMC4wLjAuNCAxOTIuMTY4LjI1NC4zMyBu
ZXRtYXNrIDI1NS4yNTUuMjU1LjI1NSAKCk9uIFBDMSwgJ2lmY29uZmlnJyBzaG91bGQgc2hvdyB0
aGlzOgoKdGFwMTogZmxhZ3M9ODA1MTxVUCxQT0lOVE9QT0lOVCxSVU5OSU5HLE1VTFRJQ0FTVD4g
bXR1IDE1MDAKICAgICAgICBpbmV0IDEwLjAuMC40IC0tPiAxOTIuMTY4LjI1NC4zMyBuZXRtYXNr
IDB4ZmZmZmZmZmYgCiAgICAgICAgaW5ldDYgZmU4MDo6MjEzOmQ0ZmY6ZmU4MzplMzc4JXRhcDEg
cHJlZml4bGVuIDY0IHNjb3BlaWQgMHg2IAogICAgICAgIE9wZW5lZCBieSBQSUQgMTI1MwoKJ25l
dHN0YXQgLW5yJyBzaG91bGQgc2hvdyB0aGlzOgoKMTkyLjE2OC4yNTQuMzMgICAgIDEwLjAuMC40
ICAgICAgICAgICBVSCAgICAgICAgICAwICAgICAgICAwICAgdGFwMQoKT2theSwgbm93IHRvIHRo
ZSB0ZXN0cy4gSWYgeW91IGZsb29kIHBpbmcgdGhpcyBwcm9ncmFtIGxvY2FsbHkgZnJvbQpQQzEg
eW91IHdpbGwgc3VmZmVyIGZyb20gdGhlICJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiBzeW5k
cm9tZQphZnRlciBzb21lIFggdGhvdXNhbmQgcGFja2V0cy4gSWYgeW91IG9uIHRoZSBvdGhlciBo
YW5kIGZsb29kIHBpbmcKZnJvbSBQQzIgb3ZlciB0aGUgTEFOIGV2ZXJ5dGhpbmcgd2lsbCBiZSBk
YW5keS4gUHJvYmFibHkgYmVjYXVzZSB0aGUKTEFOIGlzIHNsb3dlci4gSSBoYXZlIHNlbnQgMSww
MDAsMDAwIHBhY2tldHMgdGhpcyB3YXkgd2l0aCBubyBwcm9ibGVtLgoKRG8gdGhpcyBsb2NhbGx5
OgojIHBpbmcgLWMgMTAwMDAwIC1zIDk3MiAtZiAtbiAtcSAxOTIuMTY4LjI1NC4zMwoKWW91IGNh
biBydW4gdGhlICdpZnN0YXQnIHByb2dyYW0gaW4gYW5vdGhlciB0ZXJtaW5hbCB3aW5kb3cgdG8g
c2VlCndoZW4gbm90aGluZyBnb2VzIHRvIHRoZSBUVU4gaW50ZXJmYWNlIGFueW1vcmUuCgpJZiB0
aGUgcGluZyBjb21tYW5kIGFib3ZlIHNlZW0gdG8gaGF2ZSBmcm96ZW4sIGRvIGEgXkMgdG8gYWJv
cnQgaXQuCklmIGl0IGRvZXNuJ3QgZnJlZXplLCB1cCB0aGUgbnVtYmVyIG9mIHBhY2tldHMgdG8g
c2VuZC4KCiMgcGluZyAxOTIuMTY4LjI1NC4zMwpQSU5HIDE5Mi4xNjguMjU0LjMzICgxOTIuMTY4
LjI1NC4zMyk6IDU2IGRhdGEgYnl0ZXMKcGluZzogc2VuZHRvOiBObyBidWZmZXIgc3BhY2UgYXZh
aWxhYmxlCnBpbmc6IHNlbmR0bzogTm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQoKVm9pbGEhCgpT
ZW5kaW5nIGZld2VyIHBhY2tldHMgKHNvIHBpbmcgZG9lc24ndCBoYW5nKSBjb25maXJtIHRoYXQg
bm8gcGFja2V0cwphcmUgbG9zdC4gU28gSSBkb24ndCBzZWUgaG93IGFueSBidWZmZXIgc3BhY2Ug
Y291bGQgYmUgdXNlZCB1cC4KCiMgcGluZyAtYyAyMDAwMCAtcyA5NzIgLWYgLW4gLXEgMTkyLjE2
OC4yNTQuMzMKUElORyAxOTIuMTY4LjI1NC4zMyAoMTkyLjE2OC4yNTQuMzMpOiA5NzIgZGF0YSBi
eXRlcwoKLS0tIDE5Mi4xNjguMjU0LjMzIHBpbmcgc3RhdGlzdGljcyAtLS0KMjAwMDAgcGFja2V0
cyB0cmFuc21pdHRlZCwgMjAwMDAgcGFja2V0cyByZWNlaXZlZCwgMCUgcGFja2V0IGxvc3MKcm91
bmQtdHJpcCBtaW4vYXZnL21heC9zdGRkZXYgPSAwLjAxMy8wLjAyMC8wLjE5MS8wLjAwNCBtcwoK
ClRvIHBpbmcgZnJvbSBQQzIgeW91IGhhdmUgdG8gc2V0dXAgYSByb3V0ZSB0byBQQzEgb2YgY291
cnNlIGJ1dCBJIGRvbid0CmRlc2NyaWJlIGhvdyB0byBkbyB0aGF0LgoKUmVtZW1iZXIgdGhhdCB5
b3UgaGF2ZSB0byBjb25maWd1cmUgdGhlIHRhcCBpbnRlcmZhY2Ugd2l0aCBpZmNvbmZpZwpldmVy
eXRpbWUgeW91IHJlc3RhcnQgdGhpcyBwcm9ncmFtIChzaW5jZSB0aGUgcm91dGUgaXMgcmVtb3Zl
ZCB3aGVuCnRoZSB0YXAgaW50ZXJmYWNlIGlzIG9wZW5lZCkuCgpTb21lIGluZm9ybWF0aW9uIGFi
b3V0IFBDMSBpbiBteSBjYXNlOgpDUFU6IEFNRCBBdGhsb24odG0pIDY0IFgyIER1YWwgQ29yZSBQ
cm9jZXNzb3IgMzgwMCsgKDIwMTAuMzEtTUh6IDY4Ni1jbGFzcyBDUFUpCiAgT3JpZ2luID0gIkF1
dGhlbnRpY0FNRCIgIElkID0gMHgyMGZiMSAgU3RlcHBpbmcgPSAxCiAgRmVhdHVyZXM9MHgxNzhi
ZmJmZjxGUFUsVk1FLERFLFBTRSxUU0MsTVNSLFBBRSxNQ0UsQ1g4LEFQSUMsU0VQLE1UUlIsUEdF
LE1DQSxDTU9WLFBBVCxQU0UzNixDTEZMVVMKSCxNTVgsRlhTUixTU0UsU1NFMixIVFQ+CiAgRmVh
dHVyZXMyPTB4MTxTU0UzPgogIEFNRCBGZWF0dXJlcz0weGUyNTAwODAwPFNZU0NBTEwsTlgsTU1Y
Kyw8YjI1PixMTSwzRE5vdyssM0ROb3c+CiAgSHlwZXJ0aHJlYWRpbmc6IDIgbG9naWNhbCBDUFVz
CnJlYWwgbWVtb3J5ICA9IDEwNzM2NzYyODggKDEwMjMgTUIpCmF2YWlsIG1lbW9yeSA9IDEwMzcz
OTM5MjAgKDk4OSBNQikKQUNQSSBBUElDIFRhYmxlOiA8TnZpZGlhIEFXUkRBQ1BJPgpGcmVlQlNE
L1NNUDogTXVsdGlwcm9jZXNzb3IgU3lzdGVtIERldGVjdGVkOiAyIENQVXMKIGNwdTAgKEJTUCk6
IEFQSUMgSUQ6ICAwCiBjcHUxIChBUCk6IEFQSUMgSUQ6ICAxCiovCgojaW5jbHVkZSA8c3RkaW8u
aD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8ZmNudGwuaD4KCiNpbmNsdWRlIDxzeXMv
dHlwZXMuaD4KI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KI2luY2x1ZGUgPG5ldC9ldGhlcm5ldC5o
PgojaW5jbHVkZSA8bmV0L2lmX2FycC5oPgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyICBVODsKdHlw
ZWRlZiB1bnNpZ25lZCBzaG9ydCBVMTY7CnR5cGVkZWYgdW5zaWduZWQgaW50ICAgVTMyOwoKI2Rl
ZmluZSBUQVBfREVWSUNFICAgInRhcDMiCiNkZWZpbmUgVEFQX01BQyAgICAgICIwMDoxMzpFQzow
MDowMDpBRSIKI2RlZmluZSBUQVBfSVAgICAgICAgIjE5Mi4xNjguMTI1LjIiCgojZGVmaW5lIFRB
UF9JTkVUICAgICAiMTkyLjE2OC4xMjUuMSIKI2RlZmluZSBUQVBfSU5FVF9NQUMgIjAwOjEzOkVD
OjEyOjM0OjU2IgojZGVmaW5lIFRBUF9NQVNLICAgICAiMjU1LjI1NS4yNTUuMCIKI2RlZmluZSBU
QVBfQkNBU1QgICAgIjE5Mi4xNjguMTI1LjI1NSIKCnR5cGVkZWYgc3RydWN0CnsKICAgIFU4ICB2
ZXJfaGRyX2xlbjsgICAgIC8qIFZlcnNpb24sIEhlYWRlciBMZW5ndGggKGluIHdvcmRzKSAqLwog
ICAgVTggIHRvczsgICAgICAgICAgICAgLyogVHlwZSBvZiBTZXJ2aWNlICovCiAgICBVMTYgcGt0
X2xlbjsgICAgICAgICAvKiBQYWNrZXQgTGVuZ3RoIChpbiBieXRlcykgKi8KICAgIFUxNiBpZDsg
ICAgICAgICAgICAgIC8qIElkZW50aWZpY2F0aW9uICovCiAgICBVMTYgZmxhZ3NfZnJhZ19vZmY7
ICAvKiBGbGFncywgRnJhZ21lbnQgT2Zmc2V0Ki8KICAgIFU4ICB0dGw7ICAgICAgICAgICAgIC8q
IFRpbWUgdG8gTGl2ZSAqLwogICAgVTggIHByb3RvOyAgICAgICAgICAgLyogUHJvdG9jb2xsICov
CiAgICBVMTYgY2tzdW07ICAgICAgICAgICAvKiBIZWFkZXIgQ2hlY2tzdW0gKi8KICAgIFUzMiBz
X2FkZHI7ICAgICAgICAgIC8qIFNvdXJjZSBBZGRyZXNzICovCiAgICBVMzIgZF9hZGRyOyAgICAg
ICAgICAvKiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCn0gSXBIZWFkZXJfdDsKCnR5cGVkZWYgc3Ry
dWN0CnsKICAgIFU4ICB0eXBlOwogICAgVTggIGNvZGU7CiAgICBVMTYgY2tzdW07CiAgICBVMTYg
aWQ7CiAgICBVMTYgc2Vxbm87Cn0gSWNtcEhlYWRlcl90OwoKVTMyIElwSGVhZGVyX0dldEhlYWRl
ckxlbmd0aChJcEhlYWRlcl90KiBwKTsKClUzMiBJcEhlYWRlcl9HZXRQYWNrZXRMZW5ndGgoSXBI
ZWFkZXJfdCogcCk7CgpVMzIgSXBIZWFkZXJfR2V0UHJvdG9jb2xsKElwSGVhZGVyX3QqIHApOwoK
dm9pZCBJcEhlYWRlcl9Td2FwQWRkcihJcEhlYWRlcl90KiBwKTsKCnZvaWQgRXRoSGVhZGVyX1N3
YXBNYWMoc3RydWN0IGV0aGVyX2hlYWRlciogcCk7Cgp2b2lkIEFycEhlYWRlcl9Td2FwQWRkcihz
dHJ1Y3QgYXJwaGRyICpwKTsKClUxNiBJcENrc3VtKFUxNiogZGF0YSwgaW50IG5fYnl0ZXMpOwoK
dm9pZCBIZXhEdW1wKFU4KiBwLCBpbnQgbl9ieXRlcyk7CgovKgogKiBSZWFkIGZyb20gcHJldmlv
dXNseSBzZXR1cCAvZGV2L3RhcFggZGV2aWNlLCBjYWxjdWxhdGUgSUNNUCBlY2hvIHJlcGx5IGFu
ZCB3cml0ZSBpdCBiYWNrLgogKi8KaW50IG1haW4gKCkKewogICAgSXBIZWFkZXJfdCogICBpcF9o
ZHI7CiAgICBJY21wSGVhZGVyX3QqIGljbXBfaGRyOwogICAgVTMyIGJ1Zls0MDBdOyAgLyogU2hv
dWxkIGNvdmVyIE1UVSA9IDE1MDAgKi8KICAgIFUzMiBzX2FkZHI7CiAgICBVMzIgaXBfaGRyX2xl
bjsKICAgIFUzMiBpcF9wa3RfbGVuOwogICAgVTMyIGljbXBfcGt0X2xlbjsKICAgIGludCB0YXBf
ZmQ7CiAgICBpbnQgbl9wa3RzID0gMDsKCXN0cnVjdCBldGhlcl9oZWFkZXIgKmV0aF9oZHI7Cglz
dHJ1Y3QgYXJwaGRyICphcnBfaGRyOwoKICAgIHRhcF9mZCA9IG9wZW4oIi9kZXYvIlRBUF9ERVZJ
Q0UsIE9fUkRXUik7CiAgICBpZiAodGFwX2ZkID09IC0xKQogICAgewogICAgICAgIHBlcnJvcigi
ZmFpbGVkIHRvIG9wZW4gL2Rldi8iIFRBUF9ERVZJQ0UgIlxuIik7CiAgICAgICAgZXhpdCgxKTsK
ICAgIH0KCglpZiAoc3lzdGVtKCJpZmNvbmZpZyAiIFRBUF9ERVZJQ0UgIiBsaW5rICIgVEFQX0lO
RVRfTUFDKSAhPSAwIHx8CgkJc3lzdGVtKCJpZmNvbmZpZyAiIFRBUF9ERVZJQ0UgIiBpbmV0ICIg
VEFQX0lORVQgIiBuZXRtYXNrICIgVEFQX01BU0sgIiBicm9hZGNhc3QgIiBUQVBfQkNBU1QpICE9
IDApCgl7CgkJcHJpbnRmKCJjYW50IGNvbmZpZ3VyZSAiIFRBUF9ERVZJQ0UgIiBkZXZpY2VcbiIp
OwoJCWV4aXQoMik7Cgl9CgogICAgLyogcGFja2V0IChwa3QpID0gaGVhZGVyIChoZHIpICsgcGF5
bG9hZCAqLwogICAgCiAgICB3aGlsZSAoKGlwX3BrdF9sZW4gPSByZWFkKHRhcF9mZCwgYnVmLCBz
aXplb2YoYnVmKSkpID49IHNpemVvZihJcEhlYWRlcl90KSkKICAgIHsKCQkvL3ByaW50ZigicmVh
ZGVkICVkXG4iLCBpcF9wa3RfbGVuKTsKCQlldGhfaGRyID0gKHN0cnVjdCBldGhlcl9oZWFkZXIq
KSBidWY7CgkJaWYgKG50b2hzKGV0aF9oZHItPmV0aGVyX3R5cGUpID09IEVUSEVSVFlQRV9BUlAp
IHsKCQkJYXJwX2hkciA9IChzdHJ1Y3QgYXJwaGRyKikgKGV0aF9oZHIrMSk7CgkJCWlmIChudG9o
cyhhcnBfaGRyLT5hcl9vcCkgIT0gQVJQT1BfUkVRVUVTVCkgewoJCQkJcHJpbnRmKCJFOiB1bmtu
b3duIGFycCBvcCAweCUwOFhcbiIsIGFycF9oZHItPmFyX29wKTsKCQkJCWNvbnRpbnVlOwoJCQl9
CgkJCWlmIChpbmV0X2FkZHIoVEFQX0lQKSAhPSAqKHVfbG9uZyopYXJfdHBhKGFycF9oZHIpKSB7
CgkJCQlwcmludGYoIkU6IG5vdCBteSBpcCBhZGRyZXNzICVzXG4iLCBpbmV0X250b2EoKih1X2xv
bmcqKWFyX3RwYShhcnBfaGRyKSkpOwoJCQkJY29udGludWU7CgkJCX0KCQkJYXJwX2hkci0+YXJf
b3AgPSBodG9ucyhBUlBPUF9SRVBMWSk7CgkJCW1lbWNweShhcl90aGEoYXJwX2hkciksIGV0aGVy
X2F0b24oVEFQX01BQyksIEVUSEVSX0FERFJfTEVOKTsKCQkJQXJwSGVhZGVyX1N3YXBBZGRyKGFy
cF9oZHIpOwoJCQkvL21lbWNweShldGhfaGRyLT5ldGhlcl9kaG9zdCwgZXRoZXJfYXRvbihUQVBf
TUFDKSwgRVRIRVJfQUREUl9MRU4pOwoJCQlFdGhIZWFkZXJfU3dhcE1hYyhldGhfaGRyKTsKCQkJ
d3JpdGUodGFwX2ZkLCBidWYsIGlwX3BrdF9sZW4pOwoJCQkvL3ByaW50ZigiYXJwIHJlcGx5IHNl
bmRlZCAoJWx1KVxuIiwgaXBfcGt0X2xlbik7CgkJCWNvbnRpbnVlOwoJCX0KCQlpZiAobnRvaHMo
ZXRoX2hkci0+ZXRoZXJfdHlwZSkgIT0gRVRIRVJUWVBFX0lQKSB7CgkJCXByaW50ZigiRTogdW5r
bm93biBwYWNrZXQgMHglMDhYXG4iLCBldGhfaGRyLT5ldGhlcl90eXBlKTsKCQkJY29udGludWU7
CgkJfQogICAgICAgIGlwX2hkciAgICAgICA9IChJcEhlYWRlcl90KikoZXRoX2hkcisxKTsKICAg
ICAgICBpcF9oZHJfbGVuICAgPSBJcEhlYWRlcl9HZXRIZWFkZXJMZW5ndGgoaXBfaGRyKTsKICAg
ICAgICBpY21wX2hkciAgICAgPSAoSWNtcEhlYWRlcl90KikoKGNoYXIqKWlwX2hkciArIGlwX2hk
cl9sZW4qNCk7CiAgICAgICAgaWNtcF9wa3RfbGVuID0gaXBfcGt0X2xlbiAtIChpcF9oZHJfbGVu
ICogNCk7CgogICAgICAgIGlmIChpcF9wa3RfbGVuIC0gRVRIRVJfSERSX0xFTiAhPSBJcEhlYWRl
cl9HZXRQYWNrZXRMZW5ndGgoaXBfaGRyKSkKICAgICAgICB7CiAgICAgICAgICAgIHByaW50Zigi
RTogcmVhZCBkYXRhIGxlbmd0aCBkb2VzIG5vdCBtYXRjaCBJUCBwYWNrZXQgbGVuZ3RoICglZCAl
ZClcbiIsCiAgICAgICAgICAgICAgICAgICBpcF9wa3RfbGVuLCBJcEhlYWRlcl9HZXRQYWNrZXRM
ZW5ndGgoaXBfaGRyKSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAK
ICAgICAgICBpZiAoSXBIZWFkZXJfR2V0UHJvdG9jb2xsKGlwX2hkcikgIT0gMSkKICAgICAgICB7
CiAgICAgICAgICAgIHByaW50ZigiRTogTm8gSUNNUCBJUCBwYWNrZXQhIik7CiAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAoaWNtcF9wa3RfbGVuIDwg
c2l6ZW9mKCppY21wX2hkcikpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIkU6IE5vIElD
TVAgZGF0YSBpbiBJUCBwYWNrZXQhXG4iKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
fQogICAgICAgIAogICAgICAgIGlmIChpY21wX2hkci0+dHlwZSAhPSA4KQogICAgICAgIHsKICAg
ICAgICAgICAgcHJpbnRmKCJFOiBObyBJQ01QIGVjaG8gbWVzc2FnZSBuX3BrdHM9JWQhXG4iLCBu
X3BrdHMpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIElwSGVhZGVy
X1N3YXBBZGRyKGlwX2hkcik7CiAgICAgICAgCiAgICAgICAgaWNtcF9oZHItPnR5cGUgID0gMDsK
ICAgICAgICBpY21wX2hkci0+Y2tzdW0gPSAwOwoKICAgICAgICBpY21wX2hkci0+Y2tzdW0gPSBJ
cENrc3VtKChVMTYqKWljbXBfaGRyLCBpY21wX3BrdF9sZW4pOwoKCQlFdGhIZWFkZXJfU3dhcE1h
YyhldGhfaGRyKTsKCiAgICAgICAgLyogU2VuZCBiYWNrIHBhY2tldC4gKi8KICAgICAgICB3cml0
ZSh0YXBfZmQsIGJ1ZiwgaXBfcGt0X2xlbik7CiAgICAgICAgCiAgICAgICAgbl9wa3RzKys7CiAg
ICB9CiAgICAKICAgIHByaW50ZigiVGhhdCdzIGVub3VnaCBmb3IgdG9kYXkga2lkcyFcbiIpOwog
ICAgCiAgICBjbG9zZSh0YXBfZmQpOwogICAgCiAgICByZXR1cm4gMDsKfQoKCi8qIEdldCBoZWFk
ZXIgbGVuZ3RoIGluIDQgYnl0ZSB3b3Jkcy4gKi8KVTMyIElwSGVhZGVyX0dldEhlYWRlckxlbmd0
aChJcEhlYWRlcl90KiBwKQp7CiAgICByZXR1cm4gcC0+dmVyX2hkcl9sZW4gJiAweDBGOwp9CgpV
MzIgSXBIZWFkZXJfR2V0UGFja2V0TGVuZ3RoKElwSGVhZGVyX3QqIHApCnsKICAgIHJldHVybiBu
dG9ocyhwLT5wa3RfbGVuKTsKfQoKVTMyIElwSGVhZGVyX0dldFByb3RvY29sbChJcEhlYWRlcl90
KiBwKQp7CiAgICByZXR1cm4gcC0+cHJvdG87Cn0KCnZvaWQgSXBIZWFkZXJfU3dhcEFkZHIoSXBI
ZWFkZXJfdCogcCkKewogICAgVTMyIHNfYWRkciA9IHAtPnNfYWRkcjsKICAgIHAtPnNfYWRkciAg
PSBwLT5kX2FkZHI7CiAgICBwLT5kX2FkZHIgID0gc19hZGRyOwp9Cgp2b2lkIEV0aEhlYWRlcl9T
d2FwTWFjKHN0cnVjdCBldGhlcl9oZWFkZXIqIHApCnsKCXVfY2hhciBldGhlcl9ob3N0W0VUSEVS
X0FERFJfTEVOXTsKCgltZW1jcHkoZXRoZXJfaG9zdCwgICAgIHAtPmV0aGVyX2Rob3N0LCBFVEhF
Ul9BRERSX0xFTik7CgltZW1jcHkocC0+ZXRoZXJfZGhvc3QsIHAtPmV0aGVyX3Nob3N0LCBFVEhF
Ul9BRERSX0xFTik7CgltZW1jcHkocC0+ZXRoZXJfc2hvc3QsIGV0aGVyX2hvc3QsICAgICBFVEhF
Ul9BRERSX0xFTik7Cn0KCnZvaWQgQXJwSGVhZGVyX1N3YXBBZGRyKHN0cnVjdCBhcnBoZHIgKnAp
CnsKCWNhZGRyX3Qgc2hhID0gYXJfc2hhKHApOwoJY2FkZHJfdCB0aGEgPSBhcl90aGEocCk7Cglz
aXplX3QgY29uc3QgdHN6ID0gcC0+YXJfaGxuICsgcC0+YXJfcGxuOwoJY2FkZHJfdCB0ID0gbWFs
bG9jKHRzeik7CgltZW1jcHkodCwgc2hhLCB0c3opOwoJbWVtY3B5KHNoYSwgdGhhLCB0c3opOwoJ
bWVtY3B5KHRoYSwgdCwgdHN6KTsKCWZyZWUodCk7Cn0KCnZvaWQgSGV4RHVtcChVOCogcCwgaW50
IG5fYnl0ZXMpCnsKCXdoaWxlKG5fYnl0ZXMtLSkgewoJCXByaW50ZigiJTAyWCAiLCAoaW50KSAq
cCsrKTsKCX0KCXByaW50ZigiXG4iKTsKfQoKCi8qKgogKiBDaGVja3N1bSByb3V0aW5lIGZvciBJ
bnRlcm5ldCBQcm90b2NvbCBmYW1pbHkgaGVhZGVycyAoQyBWZXJzaW9uKQogKgogKiBAcGFyYW0g
ZGF0YSAgICAgUG9pbnRlciB0byBkYXRhIHRvIGNhbGN1bGF0ZSBjaGVja3N1bSBmb3IuCiAqIEBw
YXJhbSBuX2J5dGVzICBMZW5ndGggaW4gYnl0ZXMuCiAqLwpVMTYgSXBDa3N1bShVMTYqIGRhdGEs
IGludCBuX2J5dGVzKQp7CiAgICBpbnQgbmxlZnQ7CiAgICBpbnQgc3VtOwogICAgVTE2ICp3Owog
ICAgdW5pb24gewogICAgICAgIFUxNiB1czsKICAgICAgICBVOCAgdWNbMl07CiAgICB9IGxhc3Q7
CiAgICBVMTYgYW5zd2VyOwoKICAgIG5sZWZ0ID0gbl9ieXRlczsKICAgIHN1bSA9IDA7CiAgICB3
ID0gZGF0YTsKCiAgICAvKgogICAgICogT3VyIGFsZ29yaXRobSBpcyBzaW1wbGUsIHVzaW5nIGEg
MzIgYml0IGFjY3VtdWxhdG9yIChzdW0pLCB3ZSBhZGQKICAgICAqIHNlcXVlbnRpYWwgMTYgYml0
IHdvcmRzIHRvIGl0LCBhbmQgYXQgdGhlIGVuZCwgZm9sZCBiYWNrIGFsbCB0aGUKICAgICAqIGNh
cnJ5IGJpdHMgZnJvbSB0aGUgdG9wIDE2IGJpdHMgaW50byB0aGUgbG93ZXIgMTYgYml0cy4KICAg
ICAqLwogICAgd2hpbGUgKG5sZWZ0ID4gMSkKICAgIHsKICAgICAgICBzdW0gKz0gKncrKzsKICAg
ICAgICBubGVmdCAtPSAyOwogICAgfQoKICAgIC8qIG1vcCB1cCBhbiBvZGQgYnl0ZSwgaWYgbmVj
ZXNzYXJ5ICovCiAgICBpZiAobmxlZnQgPT0gMSkKICAgIHsKICAgICAgICBsYXN0LnVjWzBdID0g
KihVOCAqKXc7CiAgICAgICAgbGFzdC51Y1sxXSA9IDA7CiAgICAgICAgc3VtICs9IGxhc3QudXM7
CiAgICB9CgogICAgLyogYWRkIGJhY2sgY2Fycnkgb3V0cyBmcm9tIHRvcCAxNiBiaXRzIHRvIGxv
dyAxNiBiaXRzICovCiAgICBzdW0gPSAoc3VtID4+IDE2KSArIChzdW0gJiAweGZmZmYpOyAgICAg
LyogYWRkIGhpIDE2IHRvIGxvdyAxNiAqLwogICAgc3VtICs9IChzdW0gPj4gMTYpOyAgICAgICAg
ICAgICAgICAgICAgIC8qIGFkZCBjYXJyeSAqLwogICAgYW5zd2VyID0gfnN1bTsgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIHRydW5jYXRlIHRvIDE2IGJpdHMgKi8KICAgIAogICAgcmV0dXJu
KGFuc3dlcik7Cn0K
------=_Part_5712_30337467.1185543327669--



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