Snort mailing list archives
Snort-users digest, Vol 1 #795 - 7 msgs
From: snort-users () lists sourceforge net
Date: Tue, 10 Jul 2001 13:20:09 +0200
Send Snort-users mailing list submissions to snort-users () lists sourceforge net To subscribe or unsubscribe via the World Wide Web, visit http://lists.sourceforge.net/lists/listinfo/snort-users or, via email, send a message with subject or body 'help' to snort-users-request () lists sourceforge net You can reach the person managing the list at snort-users-admin () lists sourceforge net When replying, please edit your Subject line so it is more specific than "Re: Contents of Snort-users digest..." Today's Topics: 1. Re: error message with snort (Erek Adams) 2. Re: error message with snort (Ramin Alidousti) 3. Re: Snort FAQ 1.8 (Ramin Alidousti) 4. Re: Snort FAQ 1.8 (Blake Frantz) 5. Re: Re: Snort-users digest, Vol 1 #791 - 5 msgs (Dan Hollis) 6. Re: Snort FAQ 1.8 (Ramin Alidousti) 7. spp_defrag.c v1.5.1 (Dragos Ruiu) --__--__-- Message: 1 Date: Tue, 10 Jul 2001 12:34:33 -0700 (PDT) From: Erek Adams <erek () theadamsfamily net> To: Darrin Powell <dpowell () lssi net> cc: snort-users <snort-users () lists sourceforge net> Subject: Re: [Snort-users] error message with snort On Tue, 10 Jul 2001, Darrin Powell wrote:
I tried to run snort and get this error message ERROR /etc/snort/snort.conf (8) => Rule IP addr ("2xx.xx.xxx.xxx") didn't x-late, WTF?
:) Easy fix.
Any help would be greatly appreciated..
Remove the quotes and all will be well. ----- Erek Adams Nifty-Type-Guy TheAdamsFamily.Net --__--__-- Message: 2 Date: Tue, 10 Jul 2001 15:45:34 -0400 From: Ramin Alidousti <ramin () cannon eng us uu net> To: Darrin Powell <dpowell () lssi net> Cc: snort-users <snort-users () lists sourceforge net> Subject: Re: [Snort-users] error message with snort Take a look at 4.2 of the FAQ or get rid of the quotes around the IP address. Ramin On Tue, Jul 10, 2001 at 03:16:25PM -0400, Darrin Powell wrote:
I tried to run snort and get this error message ERROR /etc/snort/snort.conf (8) => Rule IP addr ("2xx.xx.xxx.xxx") didn't x-late, WTF? Any help would be greatly appreciated.. Thanks in advance Darrin _______________________________________________ Snort-users mailing list Snort-users () lists sourceforge net Go to this URL to change user options or unsubscribe: http://lists.sourceforge.net/lists/listinfo/snort-users Snort-users list archive: http://www.geocrawler.com/redir-sf.php3?list=snort-users
--__--__-- Message: 3 Date: Tue, 10 Jul 2001 15:49:58 -0400 From: Ramin Alidousti <ramin () cannon eng us uu net> To: Dragos Ruiu <dr () kyx net> Cc: roesch () sourcefire com, snort-users () lists sourceforge net, Denis.Ducamp () hsc fr Subject: Re: [Snort-users] Snort FAQ 1.8 The answer of 4.8 suggests that the ICMP carries the first 64 _bytes_ of the original datagram. I believe that it should be "the first 64 data _bits_" :-) Ramin On Mon, Jul 09, 2001 at 10:30:15PM -0700, Dragos Ruiu wrote:
Send me your complaints. :-) Or translations... cheers, --dr
--__--__-- Message: 4 Date: Tue, 10 Jul 2001 15:04:07 -0500 (CDT) From: Blake Frantz <blake () mc net> To: Ramin Alidousti <ramin () cannon eng us uu net> cc: Dragos Ruiu <dr () kyx net>, roesch () sourcefire com, snort-users () lists sourceforge net, Denis.Ducamp () hsc fr Subject: Re: [Snort-users] Snort FAQ 1.8 The ICMP packet returns the original Internet header *AND* the first 64 bits data bits. -Blake ================================================================= The Government, like diapers, should be replaced regularly, and often for the same reasons. On Tue, 10 Jul 2001, Ramin Alidousti wrote:
The answer of 4.8 suggests that the ICMP carries the first 64 _bytes_ of the original datagram. I believe that it should be "the first 64 data _bits_" :-) Ramin On Mon, Jul 09, 2001 at 10:30:15PM -0700, Dragos Ruiu wrote:Send me your complaints. :-) Or translations... cheers, --dr_______________________________________________ Snort-users mailing list Snort-users () lists sourceforge net Go to this URL to change user options or unsubscribe: http://lists.sourceforge.net/lists/listinfo/snort-users Snort-users list archive: http://www.geocrawler.com/redir-sf.php3?list=snort-users
--__--__-- Message: 5 Date: Tue, 10 Jul 2001 13:09:20 -0700 (PDT) From: Dan Hollis <goemon () anime net> To: <snort-users () lists sourceforge net> Subject: Re: [Snort-users] Re: Snort-users digest, Vol 1 #791 - 5 msgs On Tue, 10 Jul 2001, ORA wrote:
ke stop wasting my time. your information is garbage you POOFPOOFPOOFPOOFare a selfrighteous idiot and your messages are a joke!!!!FAKE ASS COMPUTER PROGRAMER
Yet another script kiddie who got caught by snort. Gotta love it. -Dan --__--__-- Message: 6 Date: Tue, 10 Jul 2001 16:11:39 -0400 From: Ramin Alidousti <ramin () cannon eng us uu net> To: Blake Frantz <blake () mc net> Cc: Ramin Alidousti <ramin () cannon eng us uu net>, Dragos Ruiu <dr () kyx net>, roesch () sourcefire com, snort-users () lists sourceforge net, Denis.Ducamp () hsc fr Subject: Re: [Snort-users] Snort FAQ 1.8 Yes, Blake, my point was the typo byte/bit :-) The original IP header (20 bytes [without additional options, of course]) and the first 64 data bits (8 bytes) is 28 bytes and not 64 bytes :-) Ramin On Tue, Jul 10, 2001 at 03:04:07PM -0500, Blake Frantz wrote:
The ICMP packet returns the original Internet header *AND* the first 64 bits data bits. -Blake ================================================================= The Government, like diapers, should be replaced regularly, and often for the same reasons. On Tue, 10 Jul 2001, Ramin Alidousti wrote:The answer of 4.8 suggests that the ICMP carries the first 64 _bytes_ of the original datagram. I believe that it should be "the first 64 data _bits_" :-) Ramin On Mon, Jul 09, 2001 at 10:30:15PM -0700, Dragos Ruiu wrote:Send me your complaints. :-) Or translations... cheers, --dr_______________________________________________ Snort-users mailing list Snort-users () lists sourceforge net Go to this URL to change user options or unsubscribe: http://lists.sourceforge.net/lists/listinfo/snort-users Snort-users list archive: http://www.geocrawler.com/redir-sf.php3?list=snort-users
--__--__-- Message: 7 From: Dragos Ruiu <dr () kyx net> Organization: kyx.net To: snort-users () lists sourceforge net Date: Tue, 10 Jul 2001 12:43:44 -0700 Subject: [Snort-users] spp_defrag.c v1.5.1 --Boundary-=_OjIhCLMluHEhavsxyvYVCTMdWHUF Content-Type: text/plain Content-Transfer-Encoding: 8bit Major problem resolved... fragment timeouts had some timewarps. Also all related fragments also flushed during trash sweep now. Unless someone can blow this one up too I'm off to work on spp_defrag.c version 2.0 with some nifty new features as well as even more efficiency and another project of mine.... the Onyx polymorphic mutating shellcode defender. The other IDS vendors are going to have fun with that one... snicker... :-) (reference: ADMmutate-0.8.1, re: defcon Saturday, oh wait, oops, that's in the future still.... those damn time-warps! :-) cheers, --dr (instructions... replace spp_defrag.c, rebuild, and enable preprocessor defrag in snort.conf) -- kyx.net - we're from the future --Boundary-=_OjIhCLMluHEhavsxyvYVCTMdWHUF Content-Type: text/english; name="spp_defrag.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="spp_defrag.c" LyoKKiogQ29weXJpZ2h0IChDKSAxOTk4LDE5OTksMjAwMCwyMDAxIE1hcnRpbiBSb2VzY2ggPHJv ZXNjaEBjbGFyay5uZXQ+CioqIENvcHlyaWdodCAoQykgMjAwMCwyMDAxIERyYWdvcyBSdWl1IDxk ckBreXgubmV0PgoqKgoqKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQoqKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQoqKiB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgoq KiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoqKgoqKiBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKiogYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKiogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQoqKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgoqKgoqKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQoqKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0 ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQoqKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh Y2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgoqLwovKgogKiBzcHBf ZGVmcmFnIHYxLjUuMSAtIDEwIEp1bHkgMjAwMQogKiAKICogUHVycG9zZTogSVAgZGVmcmFnbWVu dGF0aW9uIHByZXByb2Nlc3NvcgogKiBBdXRob3I6ICBEcmFnb3MgUnVpdSAoZHJAZHVyc2VjLmNv bS9kckB2LXdhdmUuY29tKQogKgogKiBub3RlczoKICogICAgICAgICAgICBUaGlzIGRlZnJhZ2dl ciBpbXBsZW1lbnRhdGlvbiBkaWZmZXJzIGZyb20gdGhlIHVzdWFsCiAqICAgICAgICAgICAgaGFz aCB0YWJsZSBhbmQgbGlua2VkIGxpc3QgdGVjaG5pcXVlIGluIHRoYXQgaXQgdXNlcwogKiAgICAg ICAgICAgIHNlbGYgY2FjaGluZyBzcGxheSB0cmVlcy4gTXkgaHlwb3RoZXNpcyBpcyB0aGF0IHRo aXMKICogICAgICAgICAgICBwcm92aWRlcyBzdWJzdGFudGlhbCBwZXJmb3JtYW5jZSBpbXByb3Zl bWVudHMuICBJCiAqICAgICAgICAgICAgaG9wZSB0aGlzIG1vZHVsZSB3aWxsIGJlIGFibGUgdG8g ZGVtb25zdHJhdGUgb3IgZGVidW5rCiAqICAgICAgICAgICAgdGhpcyBoeXBvdGhlc2lzLiAKICog CiAqIFNwbGF5IFRyZWU6CiAqIGBBIHNlbGYtb3JnYW5pemluZyBkYXRhIHN0cnVjdHVyZSB3aGlj aCB1c2VzIHJvdGF0aW9ucyB0byBtb3ZlIGFuCiAqICBhY2Nlc3NlZCBrZXkgdG8gdGhlIHJvb3Qu IFRoaXMgbGVhdmVzIHJlY2VudGx5IGFjY2Vzc2VkIG5vZGVzIG5lYXIKICogIHRoZSB0b3Agb2Yg dGhlIHRyZWUsIG1ha2luZyB0aGVtIHZlcnkgcXVpY2tseSBzZWFyY2hhYmxlIChTa2llbmEgMTk5 NywgcC4gMTc3KS4gCiAqIAogKiBBbGwgc3BsYXkgdHJlZSBvcGVyYXRpb25zIHJ1biBpbiBPKGxv ZyBuKSB0aW1lIF9vbl9hdmVyYWdlXywgd2hlcmUgbiBpcyB0aGUKICogbnVtYmVyIG9mIGl0ZW1z IGluIHRoZSB0cmVlLCBhc3N1bWluZyB5b3Ugc3RhcnQgd2l0aCBhbiBlbXB0eSB0cmVlLiAgQW55 IHNpbmdsZQogKiBvcGVyYXRpb24gY2FuIHRha2UgVGhldGEobikgdGltZSBpbiB0aGUgd29yc3Qt Y2FzZSwgYnV0IG9wZXJhdGlvbnMgc2xvd2VyIHRoYW4KICogTyhsb2cgbikgdGltZSBoYXBwZW4g cmFyZWx5IGVub3VnaCB0aGF0IHRoZXkgZG9uJ3QgYWZmZWN0IHRoZSBhdmVyYWdlLgogKiAKICog QWx0aG91Z2ggMi0zLTQgdHJlZXMgbWFrZSBhIHN0cm9uZ2VyIGd1YXJhbnRlZSAoX2V2ZXJ5XyBv cGVyYXRpb24gb24gYSAyLTMtNAogKiB0cmVlIHRha2VzIE8obG9nIG4pIHRpbWUpLCBzcGxheSB0 cmVlcyBoYXZlIHNldmVyYWwgYWR2YW50YWdlcy4gIFNwbGF5IHRyZWVzCiAqIGFyZSBzaW1wbGVy IGFuZCBlYXNpZXIgdG8gcHJvZ3JhbSwgYW5kIHRoZXkgY2FuIHRha2UgYWR2YW50YWdlIG9mIGNp cmN1bXN0YW5jZXMKICogaW4gd2hpY2ggbG90cyBvZiBmaW5kIG9wZXJhdGlvbnMgb2NjdXIgb24g YSBzbWFsbCBudW1iZXIgb2YgaXRlbXMuICBCZWNhdXNlIG9mCiAqIHRoZWlyIHNpbXBsaWNpdHks IHNwbGF5IHRyZWUgaW5zZXJ0aW9ucyBhbmQgZGVsZXRpb25zIGFyZSB0eXBpY2FsbHkgZmFzdGVy IGluCiAqIHByYWN0aWNlIChzb21ldGltZXMgYnkgYSBjb25zdGFudCBmYWN0b3IsIHNvbWV0aW1l cyBhc3ltcHRvdGljYWxseSkuICBGaW5kCiAqIG9wZXJhdGlvbnMgY2FuIGJlIGZhc3RlciBvciBz bG93ZXIsIGRlcGVuZGluZyBvbiBjaXJjdW1zdGFuY2VzLiAgU3BsYXkgdHJlZXMKICogcmVhbGx5 IGV4Y2VsIGluIGFwcGxpY2F0aW9ucyB3aGVyZSBhIGZyYWN0aW9uIG9mIHRoZSBpdGVtcyBhcmUg dGhlIHRhcmdldHMgb2YKICogbW9zdCBvZiB0aGUgZmluZCBvcGVyYXRpb25zLCBiZWNhdXNlIHRo ZXkncmUgZGVzaWduZWQgdG8gZ2l2ZSBlc3BlY2lhbGx5IGZhc3QKICogYWNjZXNzIHRvIGl0ZW1z IHRoYXQgaGF2ZSBiZWVuIGFjY2Vzc2VkIHJlY2VudGx5LgogKgogKiBhIGdvb2QgcmVmZXJlbmNl IG9uIHNwbGF5IHRyZWVzIGlzOgogKiBodHRwOi8vd3d3LmNzLnVtYmMuZWR1L2NvdXJzZXMvdW5k ZXJncmFkdWF0ZS8zNDEvZmFsbDk4L2ZyZXkvQ2xhc3NOb3Rlcy9DbGFzczE3L3NwbGF5Lmh0bWwK ICogCiAqIFJlZmVyZW5jZXMgCiAqIFNraWVuYSwgUy4gUy4gVGhlIEFsZ29yaXRobSBEZXNpZ24g TWFudWFsLiBOZXcgWW9yazogU3ByaW5nZXItVmVybGFnLCBwcC4gMTc3IGFuZCAxNzksIDE5OTcu IAogKiBTbGVhdG9yLCBELiBhbmQgVGFyamFuLCBSLiAiU2VsZi1BZGp1c3RpbmcgQmluYXJ5IFNl YXJjaCBUcmVlcy4iIEouIEFDTSAzMiwgNjUyLTY4NiwgMTk4NS4gCiAqIFRhcmphbiwgUi4gRGF0 YSBTdHJ1Y3R1cmVzIGFuZCBOZXR3b3JrIEFsZ29yaXRobXMuIFBoaWxhZGVscGhpYSwgUEE6IFNJ QU0gUHJlc3MsIDE5ODMuIAogKiBXb29kLCBELiBEYXRhIFN0cnVjdHVyZXMsIEFsZ29yaXRobXMs IGFuZCBQZXJmb3JtYW5jZS4gUmVhZGluZywgTUE6IEFkZGlzb24tV2VzbGV5LCAxOTkzLiAKICog CiAqLwoKLyogQ2hhbmdlbG9nLi4uLgoqICAxNi8wNi8wMSB2MS4xIC0tZHIKKiAgICAgICAgICBG aXhlZCByZWFzc2VtYmxlZGdyYW0gaXAgbGVuZ3RoIHRvIGluY2x1ZGUgSVAgaGVhZGVyCioJICAg KFRoYW5rcyBBYXJvbiBSaWNoYXJkIFdhbHRlcnMgPGF3YWx0ZXJzQG5kLmVkdT4gZm9yIHRyYWNr aW5nIHRoaXMgZG93bikKKgkgICBSZWRpZCB0aW1lb3V0IGZsdXNoaW5nIGFuZCBnYXJiYWdlIHN3 ZWVwaW5nLgoqCSAgIE5ldyBhbGdvcml0aG0gdXNlcyBwcm9ncnNzaXZlbHkgbW9yZSBhZ2dyZXNz aXZlIHRpbWVvdXRzCiogICAgICAgICAgYXMgbWVtIHV0aWxpemF0aW9uIGFwcHJvYWNoZXMgfjMy TWIgaGFyZCBsaW1pdC4KKgkgICBBbHNvIGZsdXNoZXMgcmVsYXRlZCBmcmFnbWVudHMgdG9nZXRo ZXIuCiogIDE3LzA2LzAxIHYxLjIgLS1kcgoqCSAgIFBzZXVkb3JhbmRvbSBzcGxheSB0cmVlIGJh bGFuY2luZyBhZGRlZC4KKiAgMjgvMDYvMDEgdjEuMyAtLWRyCioJICAgTWVtb3J5IGhhcmQgbGlt aXQgYWRkZWQKKiAgMjgvMDYvMDEgdjEuNCAtLWRyCioJICAgQ29ybmVyIGNhc2UgbWVtb3J5IGxl YWsgZml4ZWQuCiogIDI5LzA2LzAxIHYxLjRjIC0tZHIKKgkgICBtb3JlIGFnZ3Jlc3NpdmUgb3V0 IG9mIG1lbW9yeSBjbGVhbnVwCiogIDA5LzA2LzAxIHYxLjUgLS1kcgoqCSAgIG1vcmUgbWVtb3J5 IGxlYWtzIGZpeGVkCiogIDEwLzA2LzAxIHYxLjUuMSAtLWRyCioJICAgdGltZXdhcnBzIGZpeGVk LCBhbGwgcmVsYXRlZCBmcmFnbWVudHMgYWxzbyBmbHVzaGVkIGR1cmluZyBnYXJiYWdlIGNvbGxl Y3Rpb24KKi8KCiNpbmNsdWRlIDxwY2FwLmg+CiNpbmNsdWRlICJkZWNvZGUuaCIKCi8qIFdhcm5p bmcgdGhlc2UgYXJlIG9ubHkgdmFsaWQgZm9yIElQdjQKICAgYWxzbyBub3RlIHRoYXQgdGhlc2Ug YXJlIHN0aWxsIAogICBpbiByYXcgbmV0d29yayBvcmRlciAoc2VlIGh0b25zKSAgCiAgIGFuZCB0 aGVzZSBtYXkgZmFpbCBvbiA2NCBiaXQgbWFjaGluZXMgCiovCiNkZWZpbmUgSUQoeCkgICAgICAg KigodV9pbnQxNl90ICopKCh1X2ludDhfdCAqKXgtPmlwaCs0KSkKI2RlZmluZSBQUk9UTyh4KSAg ICAqKCh1X2ludDhfdCAqKXgtPmlwaCs5KQojZGVmaW5lIFNBRERSKHgpICAgICggeC0+aXBoLT5p cF9zcmMuc19hZGRyICkKI2RlZmluZSBEQUREUih4KSAgICAoIHgtPmlwaC0+aXBfZHN0LnNfYWRk ciApCiNkZWZpbmUgREFUQSh4KSAgICAgKCh1X2ludDhfdCAqKXgtPmlwaCsyMCkKI2RlZmluZSBG T0ZGKHgpICAgICAodV9pbnQzMl90KSgoeC0+ZnJhZ19vZmZzZXQpPDwzKQojZGVmaW5lIERGKHgp ICAgICAgICh4LT5kZikKI2RlZmluZSBNRih4KSAgICAgICAoeC0+bWYpCgoKLyogZnJhZ21lbnQg SUQgc3RydWN0dXJlICAqLwp0eXBlZGVmIFBhY2tldCAqZnJhZzsKCnR5cGVkZWYgc3RydWN0IHRy ZWVfbm9kZSBUcmVlOwpzdHJ1Y3QgdHJlZV9ub2RlCnsKICAgIFRyZWUgKiBsZWZ0LCAqIHJpZ2h0 OwogICAgZnJhZyBrZXk7Cn07CgpUcmVlICpmcm9vdDsKCgovKiBHYXJiYWdlIGNvbGxlY3Rpb24g c3RhY2sgKGxpbmtlZCBsaXN0KSAqLwoKdHlwZWRlZiBzdHJ1Y3QgbGlzdF9ub2RlIExpc3Q7CnN0 cnVjdCBsaXN0X25vZGUKewoJTGlzdCAqIG5leHQ7CglmcmFnIGtleTsKfTsKCkxpc3QgKmdhcmJh Z2VsaXN0OwpjaGFyIHRyYXNoZWplY3RzcGlubG9jazsKCQoKLyogIFRoZXNlIG5leHQgZGVjbGFy YXRpb25zIGFyZSBmb3IgdGhlIGZyYWdtZW50IHRpbWVvdXQgYW5kIAogICAgYW5kIGNsZWFudXAv c3dlZXBpbmcgcHJvY2Vzcy4uLiB0aW1lIG1hdGggcm91dGluZXMgYXJlIGZyb20KICAgIGFuIG9i c2N1cmUgcGllY2Ugb2Ygb2xkIGNvZGUgZm9yIGEgZGVmdW5jdCB2aWRlbyBjYW1lcmEgcHJvZHVj dAoqLwoKI2RlZmluZSBGUkFHVElNRU9VVFNFQyAgICAgIDEwICAgICAgLyogMTAgc2Vjb25kcyBs ZXQncyBwbGF5IHNhZmUgZm9yIG5vdyAqLwojZGVmaW5lIEZSQUdUSU1FT1VUVVNFQyAgICAgIDAg ICAgICAvKiAwIG1pY3JvIHNlY29uZHMgICAgICAgICAgICAgICAgICAqLwojZGVmaW5lIE1FTUhB UkRMSU0gICAgIAkgIDMyMDAwMDAwICAvKiBtZW1vcnkgaGFyZGxpbWl0IHRocmVzaG9sZCAqLwoK aW50IGZyYWdtZW11c2U7Ci8qIHRoZSBwYWNrZXQgdGltZW91dCAvIGdhcmJhZ2UgY29sbGVjdGlv biBzdHVmZiAgKi8KCmludCBzcGFjZWFsZXJ0OyAgLyogdXNlciBhbHJlYWR5IGFsZXJ0ZWQgYWJv dXQgY29uZGl0aW9uICovCgp0eXBlZGVmIHN0cnVjdCBfdGltZXN0cnVjdAp7CiAgICB1X2ludDMy X3QgdHZfc2VjOwogICAgdV9pbnQzMl90IHR2X3VzZWM7Cn0gdGltZV9zdHJ1Y3Q7Cgp0aW1lX3N0 cnVjdCBmcmFndGltZW91dDsKdGltZV9zdHJ1Y3QgbGFzdF9mcmFnX3RpbWU7CnRpbWVfc3RydWN0 IHRpbWVjaGVjazsKCgoKLyoqKioqKlRpbWVzdGFtcCBSb3V0aW5lcyoqKioqKi8KCiNkZWZpbmUg VElNRV9MVCh4LHkpICh4IHR2X3NlYzx5IHR2X3NlY3x8KHggdHZfc2VjPT15IHR2X3NlYyYmeCB0 dl91c2VjPHkgdHZfdXNlYykpCgppbmxpbmUgdm9pZCBhZGR0aW1lKHRpbWVfc3RydWN0ICpvcDEs IHRpbWVfc3RydWN0ICpvcDIsIHRpbWVfc3RydWN0ICpyZXN1bHQpCnsKICAgIHJlc3VsdC0+dHZf dXNlYyA9IG9wMS0+dHZfdXNlYytvcDItPnR2X3VzZWM7CiAgICBpZihyZXN1bHQtPnR2X3VzZWMg PiA5OTk5OTkpCiAgICB7CiAgICAgICAgcmVzdWx0LT50dl91c2VjIC09IDEwMDAwMDA7CiAgICAg ICAgb3AxLT50dl9zZWMrKzsKICAgIH0KICAgIHJlc3VsdC0+dHZfc2VjID0gb3AxLT50dl9zZWMr b3AyLT50dl9zZWM7Cn0KCgppbmxpbmUgaW50IHN1YnRpbWUodGltZV9zdHJ1Y3QgKiBvcDEsIHRp bWVfc3RydWN0ICogb3AyLCB0aW1lX3N0cnVjdCAqIHJlc3VsdCkKewogICAgaW50IGJvcnJvdz0w OwogICAgaW50IHNpZ249MDsKICAgIHRpbWVfc3RydWN0ICogdGVtcF90aW1lOwoKICAgIGlmIChU SU1FX0xUKG9wMS0+LCBvcDItPikpCiAgICB7CiAgICAgICAgc2lnbiA9IDE7CiAgICAgICAgdGVt cF90aW1lID0gb3AxOwogICAgICAgIG9wMSA9IG9wMjsKICAgICAgICBvcDIgPSB0ZW1wX3RpbWU7 CiAgICAgfQogICAgIGlmIChvcDEtPnR2X3VzZWMgPj0gb3AyLT50dl91c2VjKQogICAgIHsKICAg ICAgICByZXN1bHQtPnR2X3VzZWMgPSBvcDEtPnR2X3VzZWMtb3AyLT50dl91c2VjOwogICAgIH0K ICAgICBlbHNlIHsKICAgICAgICByZXN1bHQtPnR2X3VzZWMgPSAob3AxLT50dl91c2VjKzEwMDAw MDApLW9wMi0+dHZfdXNlYzsKICAgICAgICBib3Jyb3cgPSAxOwogICAgIH0KICAgICByZXN1bHQt PnR2X3NlYyA9IChvcDEtPnR2X3NlYy1vcDItPnR2X3NlYyktYm9ycm93OwoKICAgICByZXR1cm4g c2lnbjsKfQoKCi8qKioqKioqKipNZW1vcnkgbWFuZ2VtZW50KioqKioqKioqKi8Kdm9pZCAqRGVm cmFnQWxsb2ModW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICB2b2lkICp0bXA7CgogICAgZnJhZ21l bXVzZSArPSBzaXplOwoKICAgIHRtcCA9ICh2b2lkICopIGNhbGxvYyhzaXplLCBzaXplb2YoY2hh cikpOwoKICAgIGlmKHRtcCA9PSBOVUxMKQogICAgewogICAgICAgIEZhdGFsRXJyb3IoInNwcF9k ZWZyYWc6IFVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnkhICIKICAgICAgICAgICAgICAgICAgICIo JWx1IGJ5dGVzIGluIHVzZSlcbiIsIGZyYWdtZW11c2UpOwogICAgfQoKICAgIHJldHVybiB0bXA7 Cn0KCgoKCi8qKioqKipTcGxheSBUcmVlIFN0dWZmKioqKioqLwoKLyogRnVuY3Rpb246IGZyYWdj b21wYXJlKGksaikgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogVGhpcyBpcyB0aGUg c3BsYXkgdHJlZSBjb21wYXJpc29uLiAgICAgICAgICAgKi8KLyogUmV0dXJucyAxIGlmIGk+ajsg MCBpZiBpPWo7IC0xIGlmIGk8ajsgICAgICAgKi8KCmludCBmcmFnY29tcGFyZShpLGopCmZyYWcg aSxqOwp7CiAgICBpZighaikKICAgIHsKICAgICAgICBpZighaSkKICAgICAgICAgICAgcmV0dXJu KDApOwogICAgICAgIGVsc2UKICAgICAgICAgICAgcmV0dXJuKDEpOwogICAgfQogICAgZWxzZQog ICAgewogICAgICAgIGlmKCF0cmFzaGVqZWN0c3BpbmxvY2sgJiYgVElNRV9MVChqLT5wa3RoLT50 cy4gLCB0aW1lY2hlY2suKSkKCXsgIC8qIGJ6enQgeW91IGxvc2UuLi4gdG9vIG11Y2ggdGltZS4u Li4gdGhlIGFuc3dlciBpcy4uLi4gKi8KCQkvKiB0b3NzIHRoYXQgcHVwcHkgbGF0ZXIgYnkgYWRk aW5nIGl0IHRvIGdhcmJhZ2VsaXN0ICovCgkJTGlzdCAqbmV3OwoJCW5ldyA9IChMaXN0ICopIERl ZnJhZ0FsbG9jKHNpemVvZihMaXN0KSk7CgkJbmV3LT5uZXh0ID0gZ2FyYmFnZWxpc3Q7CgkJbmV3 LT5rZXkgPSBqOwoJCWdhcmJhZ2VsaXN0ID0gbmV3OwoKCX0gCiAgICAgICAgaWYoIWkpCiAgICAg ICAgICAgIHJldHVybigtMSk7CiAgICB9CiAgICBpZihqLT5pcGggPT0gTlVMTCkKICAgIHsKICAg ICAgICBpZihpLT5pcGggPT0gTlVMTCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAwOwog ICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gMTsKICAg ICAgICB9CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgaWYoaS0+aXBoID09IE5VTEwpCiAg ICAgICAgewogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgfQoKICAgIGlmKFNB RERSKGkpID4gU0FERFIoaikpCiAgICB7CiAgICAgICAgcmV0dXJuKDEpOwogICAgfQogICAgZWxz ZSBpZihTQUREUihpKSA8IFNBRERSKGopKQogICAgewogICAgICAgIHJldHVybigtMSk7CiAgICB9 CiAgICBlbHNlIGlmKERBRERSKGkpID4gREFERFIoaikpCiAgICB7CiAgICAgICAgcmV0dXJuKDEp OwogICAgfQogICAgZWxzZSBpZihEQUREUihpKSA8IERBRERSKGopKQogICAgewogICAgICAgIHJl dHVybigtMSk7CiAgICB9CiAgICBlbHNlIGlmKFBST1RPKGkpID4gUFJPVE8oaikpCiAgICB7CiAg ICAgICAgcmV0dXJuKDEpOwogICAgfQogICAgZWxzZSBpZihQUk9UTyhpKSA8IFBST1RPKGopKQog ICAgewogICAgICAgIHJldHVybigtMSk7CiAgICB9CiAgICBlbHNlIGlmKElEKGkpID4gSUQoaikp CiAgICB7CiAgICAgICAgcmV0dXJuKDEpOwogICAgfQogICAgZWxzZSBpZihJRChpKSA8IElEKGop KQogICAgewogICAgICAgIHJldHVybigtMSk7CiAgICB9CiAgICBlbHNlIGlmKChpLT5mcmFnX29m ZnNldCk8PDMgPiAoai0+ZnJhZ19vZmZzZXQpPDwzKQogICAgewogICAgICAgIHJldHVybigxKTsK ICAgIH0KICAgIGVsc2UgaWYoKGktPmZyYWdfb2Zmc2V0KTw8MyA8IChqLT5mcmFnX29mZnNldCk8 PDMpCiAgICB7CiAgICAgICAgcmV0dXJuKC0xKTsKICAgIH0KICAgIGVsc2UgaWYoaS0+ZHNpemUg PiBqLT5kc2l6ZSkKICAgIHsKICAgICAgICByZXR1cm4oMSk7CiAgICB9CiAgICBlbHNlIGlmKGkt PmRzaXplIDwgai0+ZHNpemUpCiAgICB7CiAgICAgICAgcmV0dXJuKC0xKTsKICAgIH0KICAgIHJl dHVybigwKTsKfQoKCi8qIEZ1bmN0aW9uOiBmcmFnc3BsYXkoaSwgdCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLwovKiBTcGxheSB1c2luZyB0aGUga2V5IGkgKHdoaWNoIG1heSBvciBt YXkgbm90IGJlIGluIHRoZSB0cmVlLikgKi8KLyogVGhlIHN0YXJ0aW5nIHJvb3QgaXMgdCwgc2l6 ZSBmaWVsZHMgYXJlIG1haW50YWluZWQgICAgICAgICAgICAqLwoKVHJlZSAqZnJhZ3NwbGF5KGZy YWcgaSwgVHJlZSAqdCkgCnsKICAgIFRyZWUgTiwgKmwsICpyLCAqeTsKICAgIGludCBjb21wOwog ICAgaWYoIXQpIHJldHVybiB0OwogICAgTi5sZWZ0ID0gTi5yaWdodCA9IE5VTEw7CiAgICBsID0g ciA9ICZOOwoKICAgIGZvcig7OykKICAgIHsKICAgICAgICBjb21wID0gZnJhZ2NvbXBhcmUoaSwg dC0+a2V5KTsKICAgICAgICBpZihjb21wIDwgMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKCF0 LT5sZWZ0KSBicmVhazsKICAgICAgICAgICAgaWYoZnJhZ2NvbXBhcmUoaSwgdC0+bGVmdC0+a2V5 KSA8IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHkgPSB0LT5sZWZ0OyAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIHJvdGF0ZSByaWdodCAqLwogICAgICAgICAgICAgICAgdC0+ bGVmdCA9IHktPnJpZ2h0OwogICAgICAgICAgICAgICAgeS0+cmlnaHQgPSB0OwogICAgICAgICAg ICAgICAgdCA9IHk7CiAgICAgICAgICAgICAgICBpZighdC0+bGVmdCkgYnJlYWs7CiAgICAgICAg ICAgIH0KICAgICAgICAgICAgci0+bGVmdCA9IHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIGxpbmsgcmlnaHQgKi8KICAgICAgICAgICAgciA9IHQ7CiAgICAgICAgICAgIHQgPSB0 LT5sZWZ0OwogICAgICAgIH0KICAgICAgICBlbHNlIGlmKGNvbXAgPiAwKQogICAgICAgIHsKICAg ICAgICAgICAgaWYoIXQtPnJpZ2h0KSBicmVhazsKICAgICAgICAgICAgaWYoZnJhZ2NvbXBhcmUo aSwgdC0+cmlnaHQtPmtleSkgPiAwKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB5ID0g dC0+cmlnaHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiByb3RhdGUgbGVmdCAqLwogICAg ICAgICAgICAgICAgdC0+cmlnaHQgPSB5LT5sZWZ0OwogICAgICAgICAgICAgICAgeS0+bGVmdCA9 IHQ7CiAgICAgICAgICAgICAgICB0ID0geTsKICAgICAgICAgICAgICAgIGlmKCF0LT5yaWdodCkg YnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbC0+cmlnaHQgPSB0OyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIGxpbmsgbGVmdCAqLwogICAgICAgICAgICBsID0gdDsKICAg ICAgICAgICAgdCA9IHQtPnJpZ2h0OwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewog ICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBsLT5yaWdodCA9IHItPmxlZnQg PSBOVUxMOwoKICAgIGwtPnJpZ2h0ID0gdC0+bGVmdDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIGFzc2VtYmxlICovCiAgICByLT5sZWZ0ID0gdC0+cmlnaHQ7CiAgICB0LT5sZWZ0 ID0gTi5yaWdodDsKICAgIHQtPnJpZ2h0ID0gTi5sZWZ0OwoKICAgIHJldHVybiB0Owp9CgovKiBG dW5jdGlvbjogVHJlZSAqIGZyYWdpbnNlcnQoZnJhZyBpLCBUcmVlICogdCkgICAgICAgICAgICAg Ki8KLyogSW5zZXJ0IGZyYWcgaSBpbnRvIHRoZSB0cmVlIHQsIGlmIGl0IGlzIG5vdCBhbHJlYWR5 IHRoZXJlLiAgICAgICAqLwovKiBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSByZXN1bHRpbmcgdHJl ZS4gICAgICAgICAgICAgICAgICAgICAgICAgKi8KClRyZWUgKmZyYWdpbnNlcnQoZnJhZyBpLCBU cmVlICogdCkKewogICAgVHJlZSAqIG5ld190cmVlX25vZGU7CiAgICBpZih0KQogICAgewogICAg ICAgIHQgPSBmcmFnc3BsYXkoaSx0KTsKICAgICAgICBpZihmcmFnY29tcGFyZShpLCB0LT5rZXkp PT0wKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIHQ7ICAvKiBpdCdzIGFscmVhZHkgdGhl cmUgKi8KICAgICAgICB9CiAgICB9CgogICAgbmV3X3RyZWVfbm9kZSA9IChUcmVlICopIERlZnJh Z0FsbG9jIChzaXplb2YgKFRyZWUpKTsKCiAgICBpZighbmV3X3RyZWVfbm9kZSB8fCBmcmFnbWVt dXNlID4gTUVNSEFSRExJTSkKICAgIHsKICAgICAgICBFcnJvck1lc3NhZ2UoIlJhbiBvdXQgb2Yg c3BhY2VcbiIpOwogICAgICAgIHNwYWNlYWxlcnQrKzsKCWlmKG5ld190cmVlX25vZGUpCgl7CgkJ ZnJhZ21lbXVzZSAtPSBzaXplb2YoVHJlZSk7CgkJZnJlZShuZXdfdHJlZV9ub2RlKTsKCX0KICAg ICAgICByZXR1cm4odCk7CiAgICB9CgogICAgLyogYWxlcnQgaHlzdGVyaXNpcyg/KSAqLwogICAg aWYgKHNwYWNlYWxlcnQpCiAgICAgICAgc3BhY2VhbGVydCAtPSAoKHVuc2lnbmVkIGludClzcGFj ZWFsZXJ0KSA+PiAxOwogICAgaWYgKHNwYWNlYWxlcnQgPCAwKQogICAgICAgIHNwYWNlYWxlcnQg PSAwOwogICAgaWYoIXQpCiAgICB7CiAgICAgICAgbmV3X3RyZWVfbm9kZS0+bGVmdCA9IG5ld190 cmVlX25vZGUtPnJpZ2h0ID0gTlVMTDsKICAgIH0KICAgIGVsc2UKICAgICAgICBpZihmcmFnY29t cGFyZShpLCB0LT5rZXkpIDwgMCkKICAgICAgICB7CiAgICAgICAgICAgIG5ld190cmVlX25vZGUt PmxlZnQgPSB0LT5sZWZ0OwogICAgICAgICAgICBuZXdfdHJlZV9ub2RlLT5yaWdodCA9IHQ7CiAg ICAgICAgICAgIHQtPmxlZnQgPSBOVUxMOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAg ewogICAgICAgICAgICBuZXdfdHJlZV9ub2RlLT5yaWdodCA9IHQtPnJpZ2h0OwogICAgICAgICAg ICBuZXdfdHJlZV9ub2RlLT5sZWZ0ID0gdDsKICAgICAgICAgICAgdC0+cmlnaHQgPSBOVUxMOwog ICAgICAgIH0KICAgIG5ld190cmVlX25vZGUtPmtleSA9IGk7CiAgICByZXR1cm4gbmV3X3RyZWVf bm9kZTsKfQoKLyogRnVuY3Rpb246IFRyZWUgKiBmcmFnZGVsZXRlKGZyYWcgaSwgVHJlZSAqdCkg ICAgICAgKi8KLyogRGVsZXRlcyBpIGZyb20gdGhlIHRyZWUgaWYgaXQncyB0aGVyZS4gICAgICAg ICAgICAgICAqLwovKiBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSByZXN1bHRpbmcgdHJlZS4gICAg ICAgICAgICAgICovCgpUcmVlICpmcmFnZGVsZXRlKGZyYWcgaSwgVHJlZSAqdCkKewogICAgVHJl ZSAqIHg7CgogICAgaWYoIXQpIHJldHVybiBOVUxMOwogICAgdCA9IGZyYWdzcGxheShpLHQpOwog ICAgaWYoZnJhZ2NvbXBhcmUoaSwgdC0+a2V5KSA9PSAwKQogICAgeyAgICAgICAgICAgICAgIC8q IGZvdW5kIGl0ICovCiAgICAgICAgaWYoIXQtPmxlZnQpCiAgICAgICAgewogICAgICAgICAgICB4 ID0gdC0+cmlnaHQ7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAg IHggPSBmcmFnc3BsYXkoaSwgdC0+bGVmdCk7CiAgICAgICAgICAgIHgtPnJpZ2h0ID0gdC0+cmln aHQ7CiAgICAgICAgfQoKICAgICAgICBpZih0LT5rZXkgIT0gTlVMTCkKICAgICAgICB7CiAgICAg ICAgICAgIGZyYWdtZW11c2UgLT0gc2l6ZW9mKFBhY2tldCk7CiAgICAgICAgICAgIGZyZWUodC0+ a2V5KTsKICAgICAgICB9CgogICAgICAgCWZyYWdtZW11c2UgLT0gc2l6ZW9mKFRyZWUpOwoJZnJl ZSh0KTsKCiAgICAgICAgcmV0dXJuIHg7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgcmV0 dXJuIHQ7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEl0IHdhc24ndCB0aGVyZSAqLwogICAg fQp9Ci8qKioqKipTbm9ydCBTdHVmZioqKioqKi8KCi8qCiAqIEZ1bmN0aW9uOiBTZXR1cERlZnJh ZygpCiAqIFB1cnBvc2U6CiAqIFJlZ2lzdGVycyB0aGUgcHJlcHJvY2Vzc29yIGtleXdvcmQgYW5k IGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uCiAqIGludG8gdGhlIHByZXByb2Nlc3NvciBsaXN0LiAg VGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCBmcm9tCiAqIEluaXRQcmVwcm9j ZXNzb3JzKCkgaW4gcGx1Z2Jhc2UuYy4KICogQXJndW1lbnRzOiBOb25lLgogKiBSZXR1cm5zOiB2 b2lkIGZ1bmN0aW9uCiAqLwp2b2lkIFNldHVwRGVmcmFnKCkKewogICAgUmVnaXN0ZXJQcmVwcm9j ZXNzb3IoImRlZnJhZyIsIERlZnJhZ0luaXQpOwp9CgovKgogKiBGdW5jdGlvbjogRGVmcmFnSW5p dCh1X2NoYXIgKikKICogUHVycG9zZToKICogQ2FsbHMgdGhlIGFyZ3VtZW50IHBhcnNpbmcgZnVu Y3Rpb24sIHBlcmZvcm1zIGZpbmFsIHNldHVwIG9uIGRhdGEKICogc3RydWN0cywgbGlua3MgdGhl IHByZXByb2MgZnVuY3Rpb24gaW50byB0aGUgZnVuY3Rpb24gbGlzdC4KICogQXJndW1lbnRzOiBh cmdzID0+IHB0ciB0byBhcmd1bWVudCBzdHJpbmcKICogUmV0dXJuczogdm9pZCBmdW5jdGlvbgog Ki8Kdm9pZCBEZWZyYWdJbml0KHVfY2hhciAqYXJncykKewogICAgQWRkRnVuY1RvUHJlcHJvY0xp c3QoUHJlcHJvY0RlZnJhZyk7CgogICAgZnJvb3QgPSBOVUxMOyAgLyogaW5pdGlhbGl6ZSBlbXB0 eSBmcmFnbWVudCB0cmVlICovCiAgICBnYXJiYWdlbGlzdCA9IE5VTEw7ICAvKiBpbml0aWFsaXpl IGVtcHR5IHRyYXNoIGxpc3QgKi8KICAgIHRyYXNoZWplY3RzcGlubG9jayA9IEZBTFNFOwogICAg ZnJhZ21lbXVzZSA9IDA7ICAgICAgLyogTm8gbWVtb3J5IHlldCAqLwogICAgc3BhY2VhbGVydCA9 IDA7ICAgICAvKiBObyBzcGFjZSBhbGVydHMgeWV0ICovCiAgICBmcmFndGltZW91dC50dl9zZWMg PSBGUkFHVElNRU9VVFNFQzsKICAgIGZyYWd0aW1lb3V0LnR2X3VzZWMgPSBGUkFHVElNRU9VVFVT RUM7Cn0KCgogCi8qKioqKioqKioqKioqVHJlZSBCYWxhbmNlIFBlcmZvcm1hbmNlIEVuaGFuY2Vt ZW50KioqKioqKioqKioqKiovCiAKaW50IGJhbGFuY2Vjb21wYXJlKHBvaW50LGopCnVuc2lnbmVk IGludCBwb2ludDsKZnJhZyBqOwp7CiAgICBpZighaikKICAgIHsKICAgICAgICByZXR1cm4oMCk7 CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgaWYoai0+aXBoID09IE5VTEwpCiAgICAgICAg ewogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICB9CiAgICBpZihwb2ludCA+IFNB RERSKGopKQogICAgewogICAgICAgIHJldHVybigxKTsKICAgIH0KICAgIGVsc2UgaWYocG9pbnQg PCBTQUREUihqKSkKICAgIHsKICAgICAgICByZXR1cm4oLTEpOwogICAgfQogICAgcmV0dXJuKDAp Owp9CiAKIAovKiBzaGlmdCBiYXNlZCBiaXQgcmV2cnNlciAtLWRyICovCiAKdW5zaWduZWQgaW50 IGJpdHJldih4KQp1bnNpZ25lZCBpbnQgeDsKewp1bnNpZ25lZCBpbnQgaSwgciA9IDA7CiAgICAg ICAgZm9yKCBpID0gMCA7IGkgPD0gc2l6ZW9mKHVuc2lnbmVkIGludCkqOCA7IGkrKykKICAgICAg ICAgICAgICAgIGlmICggeCAmICh1bnNpZ25lZCBpbnQpMTw8aSApCiAgICAgICAgICAgICAgICAg ICAgICAgIHIgfD0gKHVuc2lnbmVkIGludCkxPDwoKHNpemVvZih1bnNpZ25lZCBpbnQpKjgpLWkt MSk7CiAgICAgICAgcmV0dXJuIHI7Cn0KIAogCi8qIEZ1bmN0aW9uOiBmcmFnYmFsYW5jZShpLCB0 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi8qIFNwbGF5IHVzaW5nIHRoZSBrZXkg aSAod2hpY2ggbWF5IG9yIG1heSBub3QgYmUgaW4gdGhlIHRyZWUuKSAqLwovKiBUaGUgc3RhcnRp bmcgcm9vdCBpcyB0LCBzaXplIGZpZWxkcyBhcmUgbWFpbnRhaW5lZCAgICAgICAgICAgICovCiAK VHJlZSAqZnJhZ2JhbGFuY2UodW5zaWduZWQgaW50IGJhbGFuY2Vwb2ludCwgVHJlZSAqdCkKewog ICAgVHJlZSBOLCAqbCwgKnIsICp5OwogICAgaW50IGNvbXA7CiAgICBpZighdCkgcmV0dXJuIHQ7 CiAgICBOLmxlZnQgPSBOLnJpZ2h0ID0gTlVMTDsKICAgIGwgPSByID0gJk47CiAgICBmb3IoOzsp CiAgICB7CiAgICAgICAgY29tcCA9IGJhbGFuY2Vjb21wYXJlKGJhbGFuY2Vwb2ludCwgdC0+a2V5 KTsKICAgICAgICBpZihjb21wIDwgMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKCF0LT5sZWZ0 KSBicmVhazsKICAgICAgICAgICAgaWYoYmFsYW5jZWNvbXBhcmUoYmFsYW5jZXBvaW50LCB0LT5s ZWZ0LT5rZXkpIDwgMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgeSA9IHQtPmxlZnQ7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcm90YXRlIHJpZ2h0ICovCiAgICAgICAgICAg ICAgICB0LT5sZWZ0ID0geS0+cmlnaHQ7CiAgICAgICAgICAgICAgICB5LT5yaWdodCA9IHQ7CiAg ICAgICAgICAgICAgICB0ID0geTsKICAgICAgICAgICAgICAgIGlmKCF0LT5sZWZ0KSBicmVhazsK ICAgICAgICAgICAgfQogICAgICAgICAgICByLT5sZWZ0ID0gdDsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogbGluayByaWdodCAqLwogICAgICAgICAgICByID0gdDsKICAgICAgICAg ICAgdCA9IHQtPmxlZnQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYoY29tcCA+IDApCiAgICAg ICAgewogICAgICAgICAgICBpZighdC0+cmlnaHQpIGJyZWFrOwogICAgICAgICAgICBpZihiYWxh bmNlY29tcGFyZShiYWxhbmNlcG9pbnQsIHQtPnJpZ2h0LT5rZXkpID4gMCkKICAgICAgICAgICAg ewogICAgICAgICAgICAgICAgeSA9IHQtPnJpZ2h0OyAgICAgICAgICAgICAgICAgICAgICAgICAg Lyogcm90YXRlIGxlZnQgKi8KICAgICAgICAgICAgICAgIHQtPnJpZ2h0ID0geS0+bGVmdDsKICAg ICAgICAgICAgICAgIHktPmxlZnQgPSB0OwogICAgICAgICAgICAgICAgdCA9IHk7CiAgICAgICAg ICAgICAgICBpZighdC0+cmlnaHQpIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGwt PnJpZ2h0ID0gdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsaW5rIGxlZnQgKi8K ICAgICAgICAgICAgbCA9IHQ7CiAgICAgICAgICAgIHQgPSB0LT5yaWdodDsKICAgICAgICB9CiAg ICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQog ICAgbC0+cmlnaHQgPSByLT5sZWZ0ID0gTlVMTDsKIAogCiAgICBsLT5yaWdodCA9IHQtPmxlZnQ7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBhc3NlbWJsZSAqLwogICAgci0+bGVm dCA9IHQtPnJpZ2h0OwogICAgdC0+bGVmdCA9IE4ucmlnaHQ7CiAgICB0LT5yaWdodCA9IE4ubGVm dDsKIAogICAgcmV0dXJuIHQ7Cn0KCi8qKioqKipGcmFnbWVudGF0aW9uIFN0dWZmKioqKioqLwoK LyogRnVuY3Rpb246IGZyYWdhZGRybWF0Y2goaSxqKSAgICAgICAgICAgICAgICAgICAgICAgICAq LwovKiByZXR1cm5zIHRydWUgaWYgdGhlIGZyYWdtZW50cyBiZWxvbmcgdG8gdGhlIHNhbWUgcmVh c3NlbWJseSAgICAgICovCmludCBmcmFnYWRkcm1hdGNoKGksaikKZnJhZyBpLGo7Ci8qIFRoaXMg aXMgdGhlIGNvbXBhcmlzb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwov KiBSZXR1cm5zIDEgaWYgaSBqIGhhdmUgbWF0Y2hpbmcgYWRkcmVzc2VzIGVsc2UgMCAgICAgICAg ICAgKi8KewoKICAgIGlmKCggU0FERFIoaSkgPT0gU0FERFIoaikgKQogICAgICAgJiYgKCBEQURE UihpKSA9PSBEQUREUihqKSApCiAgICAgICAmJiAoIElEKGkpID09IElEKGopICkKICAgICAgICYm ICggUFJPVE8oaSkgPT0gUFJPVE8oaikgKSkKICAgIHsKICAgICAgICByZXR1cm4oMSk7CiAgICB9 CgogICAgcmV0dXJuKDApOwp9CgovKgogKiBGdW5jdGlvbjogUGFja2V0ICpSZWFzc2VtYmxlSVAo ZnJhZyAqZnJvb3QpCiAqIFB1cnBvc2U6IEdlbmVyYXRlIGEgUGFja2V0ICogYW5kIHBhc3MgaXQg dG8gUHJvY2Vzc1BhY2tldCwgdGhlbiAKICogZGVhbGxvY2F0ZSBwYWNrZXQKICogQXJndW1lbnRz OiBmcm9vdCAtIHJvb3Qgb2YgdGhlIHRyZWUgY29udGFpbmluZyB0aGUgbGFzdCBwYWNrZXQgb2Yg dGhlIGZyYW1lCiAqIFJldHVybnM6IHRyZWUgd2l0aCByZWFzc2VtYmxlZCBmcmFnbWVudHMgZGVs ZXRlZAogKi8KVHJlZSAqUmVhc3NlbWJsZUlQKFRyZWUgKmZyb290KQp7CiAgICBQYWNrZXQgKnA7 CiAgICBpbnQgd3JpdGVjb3VudCA9IDA7CiAgICBjaGFyICpucDsKICAgIHVfY2hhciAqdG1wOwog ICAgdV9pbnQgcHNpemU7CiAgICB1bnNpZ25lZCBpbnQgb3ZlcmhlYWQsIG1vcmVvdmVyaGVhZDsK ICAgIElQSGRyIHNsb3dhcmlzZml4OwogICAgRXZlbnQgZXZlbnQ7CgogICAgaWYoZnJvb3QgPT0g TlVMTCkKICAgIHsKICAgICAgICBFcnJvck1lc3NhZ2UoIkdvdCBOVUxMICpmcm9vdCBpbiBSZWFz c2VtYmxlSVAoKSwgcGxlYXNlIHRlbGwgRHJhZ29zXG4iKTsKICAgICAgICByZXR1cm4gTlVMTDsK ICAgIH0KCiAgICBwc2l6ZSA9IChmcm9vdC0+a2V5KS0+ZHNpemUgKyAoKGZyb290LT5rZXktPmZy YWdfb2Zmc2V0KTw8Myk7IC8qIGxhc3QgZnJhZyBpcyBhdCB0b3Agb2YgdHJlZSAqLwoKCiAgICAv KiB3ZSd2ZSBnb3QgdG8gaGF2ZSBhIHBhY2tldCBhdCBsZWFzdCBhcyBsYXJnZSBhcyBhbiBJQ01Q IGhlYWRlciAqLwogICAgaWYocHNpemUgPCA0KQogICAgewogICAgICAgIEVycm9yTWVzc2FnZSgi WyFdIEVSUk9SOiBEZWZyYWcgcGx1Z2luIGlzIGZ1Y2tlZCB1cCwgIgogICAgICAgICAgICAgICAg ICAgICAiY2FsY3VsYXRlZCBwYWNrZXQgc2l6ZSB0b28gc21hbGxcbiIpOwogICAgfQoKICAgIC8q IGhvcGVmdWxseSBtb3Jlb3ZlcmhlYWQgaGVyZSBmaW5kcyBvdXQgYWJvdXQgYWxsIHRoZSB3aWVy ZCBNQUMgCiAgICAgKiBzaXplcyBsaWtlIEZEREkgYW5kIEFUTSAKICAgICAqLwogICAgbW9yZW92 ZXJoZWFkID0gKGNoYXIqKWZyb290LT5rZXktPmlwaCAtIChjaGFyKilmcm9vdC0+a2V5LT5wa3Q7 CiAgICBvdmVyaGVhZCA9IChjaGFyKilmcm9vdC0+a2V5LT5wa3QgLSAoY2hhciopZnJvb3QtPmtl eS0+cGt0aDsKICAgIAogICAgLyogTGludXggZml4IGNvZGUgKi8KICAgIGlmKG92ZXJoZWFkIDwg c2l6ZW9mKHN0cnVjdCBwY2FwX3BrdGhkcikgfHwgCiAgICAgICBvdmVyaGVhZCA+IHNpemVvZigg c3RydWN0IHBjYXBfcGt0aGRyKSArIDIpCiAgICB7CiAgICAgICAgb3ZlcmhlYWQgPSBzaXplb2Yo c3RydWN0IHBjYXBfcGt0aGRyKSArIDI7CiAgICB9CgoKICAgIHAgPSAoUGFja2V0ICopRGVmcmFn QWxsb2Moc2l6ZW9mKFBhY2tldCkpOwoKCiAgICBpZighcCkKICAgIHsKICAgICAgICBFcnJvck1l c3NhZ2UoIlshXSBFUlJPUjogVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgIgogICAgICAg ICAgICAgICAgICAgICAiZnJhZ21lbnQgcmVidWlsZCFcbiIpOwogICAgICAgIHJldHVybiBOVUxM OwogICAgfQoKICAgIG1lbWNweShwLCBmcm9vdC0+a2V5LCBzaXplb2YoUGFja2V0KSk7CgogICAg cC0+cGt0aCA9IChzdHJ1Y3QgcGNhcF9wa3RoZHIgKikKICAgICAgICAgICAgICAgIERlZnJhZ0Fs bG9jKHBzaXplICsgb3ZlcmhlYWQgKyBtb3Jlb3ZlcmhlYWQgKyBzaXplb2YoSVBIZHIpICsgMzIp OwoKICAgIGlmKCFwLT5wa3RoKQogICAgewogICAgICAgIEVycm9yTWVzc2FnZSgiWyFdIEVSUk9S OiBVbmFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBmcmFnbWVudCAiCiAgICAgICAgICAgICAg ICAgICAgICJyZWJ1aWxkIVxuIik7CiAgICAgICAgZnJhZ21lbXVzZSAtPSBzaXplb2YoUGFja2V0 KTsKICAgICAgICBmcmVlKHApOwogICAgICAgIHJldHVybiBOVUxMOwogICAgfQoKICAgIHAtPmlw aCA9IChJUEhkciAqKSgodV9jaGFyKilwLT5wa3RoICsgb3ZlcmhlYWQgKyBtb3Jlb3ZlcmhlYWQp OwogICAgcC0+cGt0ID0gKHVfY2hhciopcC0+aXBoIC0gbW9yZW92ZXJoZWFkOwoKICAgIC8qCiAg ICAgKiBOb3cgY29weSB0aGUgaGVhZGVyIGFuZCBmcmFnbWVudHMgaW50byB0aGUgbmV3bHktYWxs b2NhdGVkIGJ1ZmZlciwKICAgICAqIHJlY29uc3RydWN0aW5nIHRoZSBwYWNrZXQgY2h1bmsgYnkg Y2h1bmsuIEN1cnJlbnQgYWxnb3JpdGhtIGlzIGZpcnN0IAogICAgICogd3JpdGUgdG8gYW4gYXJl YSB3aW5zLCBwbGF5IHdpdGggc3BsYXkgb3JkZXIgdG8gY2hhbmdlLgogICAgICogd2Ugc3RhcnQg ZnJvbSB0aGUgbGFzdCBmcmFnbWVudCBhbmQgd29yayBiYWNrLi4uLgogICAgICovCgogICAgLyog ZmlsbCBpbiBwYWNrZXQgaGVhZGVyIGJwZiBoZWFkZXIgZmlyc3QqLwogICAgbWVtY3B5KHAtPnBr dGgsIGZyb290LT5rZXktPnBrdGgsIG92ZXJoZWFkKTsgCgogICAgLyogdGhlbiB0aGUgbWFjIGp1 bmssIHNwbGl0IGludG8gdHdvIGNvcGllcyBmb3IgTGludXggCiAgICAgKiBub24tY29udGlndW91 cyBoZWFkZXJzIAogICAgICovCiAgICBtZW1jcHkoKGNoYXIqKXAtPnBrdGggKyBvdmVyaGVhZCwg ZnJvb3QtPmtleS0+cGt0LCBtb3Jlb3ZlcmhlYWQpOyAKCiAgICAvKgogICAgICogdGhlbiB0aGUg SVAgaGVhZGVyIGp1c3QgdG8gYmUgcGFyYW5vaWQgZm9yIGRlYnVnZ2luZyBiZWNhdXNlIGluIHRo ZQogICAgICogcmVhbCB3b3JsZCB3ZSB3b3VsZCBkbyB0aGVzZSBpbiBvbmUgY29weQogICAgICov CiAgICB0bXAgPSAodV9jaGFyICopIGZyb290LT5rZXktPmlwaDsKICAgIG1lbWNweShwLT5pcGgs IHRtcCwgc2l6ZW9mKElQSGRyKSk7IAoKICAgIHAtPnBrdGgtPmNhcGxlbiA9IHBzaXplICsgb3Zl cmhlYWQgKyBtb3Jlb3ZlcmhlYWQgKyBzaXplb2YoSVBIZHIpOwogICAgcC0+cGt0aC0+bGVuID0g cC0+cGt0aC0+Y2FwbGVuOwoKICAgIC8qCiAgICAgKiBDbGVhciB0aGUgbW9yZSBmcmFnbWVudHMg Yml0LCBhbmQgc2V0IHRoZSBsZW5ndGggaW4gdGhlIGlwIGhlYWRlcgogICAgICogKGluIG5ldHdv cmsgYnl0ZSBvcmRlcikuCiAgICAgKi8KICAgIHAtPmlwaC0+aXBfbGVuID0gaHRvbnMocHNpemUr c2l6ZW9mKElQSGRyKSk7CiAgICBwLT5pcGgtPmlwX29mZiA9IDA7CiAgICBwLT5mcmFnX2ZsYWcg PSAwOwoKCiAgICB3aGlsZShmcm9vdCAmJiBmcmFnYWRkcm1hdGNoKHAsZnJvb3QtPmtleSkpCiAg ICB7CiAgICAgICAgaWYoKChmcm9vdC0+a2V5LT5mcmFnX29mZnNldCk8PDMpICsgZnJvb3QtPmtl eS0+ZHNpemUgPD0gcHNpemUpCiAgICAgICAgewogICAgICAgICAgICBtZW1jcHkoKHVfaW50OF90 ICopREFUQShwKSsoKGZyb290LT5rZXktPmZyYWdfb2Zmc2V0KTw8MyksIAogICAgICAgICAgICAg ICAgICAgIERBVEEoZnJvb3QtPmtleSksIGZyb290LT5rZXktPmRzaXplKTsKCiAgICAgICAgICAg IHdyaXRlY291bnQgKz0gZnJvb3QtPmtleS0+ZHNpemU7CiAgICAgICAgfQogICAgICAgIGVsc2UK ICAgICAgICB7CiAgICAgICAgICAgIFNldEV2ZW50KCZldmVudCwgR0VORVJBVE9SX1NQUF9ERUZS QUcsIAogICAgICAgICAgICAgICAgICAgIERFRlJBR19GUkFHX09WRVJGTE9XLCAxLCAwLCAwLCAw KTsKICAgICAgICAgICAgQ2FsbEFsZXJ0RnVuY3MocCwgIkZyYWdtZW50YXRpb24gT3ZlcmZsb3cg QXR0YWNrIiwgTlVMTCwgJmV2ZW50KTsKICAgICAgICB9CgogICAgICAgIC8qIGNsZWFyIHRoZSBm cmFnbWVudCBzdG9yZSBvZiB0aGUgZnJhZyB0aGF0IHdhcyBqdXN0IHB1dCBpbnRvIHRoZQogICAg ICAgICAqIHJlYXNzZW1ibHkKICAgICAgICAgKi8KICAgICAgICBpZihmcm9vdCkKICAgICAgICB7 CiAgICAgICAgICAgIG5wID0gKGNoYXIgKilmcm9vdC0+a2V5LT5wa3RoOyAgLyogYWRkcmVzcyBm b3IgZnJlZSBsYXRlciAqLwoKCiAgICAgICAgICAgIGZyb290ID0gZnJhZ2RlbGV0ZShmcm9vdC0+ a2V5LCBmcm9vdCk7CgogICAgICAgICAgICBpZihucCkKICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgLyogdGhpcyBmcmFnbWVudCB3YXMgYW4gZWxlbWVudCBvZiBhIHJlYnVpbHQgcGFja2V0 ICovCiAgICAgICAgICAgICAgICBwYy5yZWJ1aWxkX2VsZW1lbnQrKzsKICAgICAgICAgICAgICAg IGZyYWdtZW11c2UgLT0gKCgoc3RydWN0IHBjYXBfcGt0aGRyICopbnApLT5jYXBsZW4gKyAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmhlYWQgKyAyMCk7CiAgICAgICAgICAgICAg ICBmcmVlKG5wKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCWZyb290ID0gZnJhZ3NwbGF5KHAs ZnJvb3QpOwogICAgfQoKICAgIG1lbWNweSgmc2xvd2FyaXNmaXgsIHAtPmlwaCwgc2l6ZW9mKElQ SGRyKSk7CiAgICBwLT5pcGggPSAmc2xvd2FyaXNmaXg7IAoKICAgIC8qIGFuZCBub3cgc29tZSBq b2x0MnByb29maW5nICovCiAgICAvKiBwc2l6ZSBjaGVjayBpbmNyZWFzZWQgZnJvbSA4MTkyIHRv IDY1NTM1LW10dXNpemUsIHRoZXNlIHBhY2tldHMgY2FuIGdldAogICAgICogYmlnIGxlZ2l0aW1h dGVseSAtIE1GUiAqLwogICAgLyogbW92ZWQgYmFjayBkb3duIHRvIDgxOTIgdG8gYWNjb3VudCBm b3Igc3dpc3NjaGVlc2VncmFtIGF0dGFjayAtLWRyICovCiAgICBpZihwc2l6ZSA+IDgxOTIpICAv KiBvbmx5IGtpY2sgaW4gZm9yIG1vbnN0ZXJncmFtcyAqLwogICAgewogICAgICAgIC8qcGFja2V0 cyBoYXZlIHRvIGJlIGhhbGYgZnVsbCBmb3IgdXMgdG8gbG9vayBhdCB0aGVtICovCiAgICAgICAg aWYod3JpdGVjb3VudCA+IChwc2l6ZT4+MSkpIAogICAgICAgIHsKICAgICAgICAgICAgaWYocCkK ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLyoga2VlcCBzdGF0cyBmb3IgdGhlIHBhY2tl dCBjb3VudGVyIHN0cnVjdCAtTUZSICovCiAgICAgICAgICAgICAgICBwYy5yZWJ1aWx0X2ZyYWdz Kys7ICAvKiBNYXJ0eS4uLiBIdWg/PyAtLWRyICovCiAgICAgICAgICAgICAgICBQcm9jZXNzUGFj a2V0KE5VTEwscC0+cGt0aCwgcC0+cGt0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAg ICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBTZXRFdmVudCgmZXZlbnQsIEdFTkVSQVRPUl9T UFBfREVGUkFHLCAKICAgICAgICAgICAgICAgICAgICBERUZSQUdfRlJBR1NfRElTQ0FSREVELCAx LCAwLCAwLCAwKTsKICAgICAgICAgICAgQ2FsbEFsZXJ0RnVuY3MocCwgIkluY29tcGxldGUgUGFj a2V0IEZyYWdtZW50cyBEaXNjYXJkZWQiLCAKICAgICAgICAgICAgICAgICAgICBOVUxMLCAmZXZl bnQpOwogICAgICAgIH0KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBpZihwKQogICAgICAg IHsKICAgICAgICAgICAgcGMucmVidWlsdF9mcmFncysrOwogICAgICAgICAgICBQcm9jZXNzUGFj a2V0KE5VTEwsIHAtPnBrdGgsIHAtPnBrdCk7CiAgICAgICAgfQogICAgfQoKICAgIGZyYWdtZW11 c2UgLT0gKHBzaXplK292ZXJoZWFkK21vcmVvdmVyaGVhZCtzaXplb2YoSVBIZHIpKzMyK3NpemVv ZihQYWNrZXQpKTsKICAgIGZyZWUocC0+cGt0aCk7ICAgICAgLyogc2V0IHRoZSBmcmFua2Vuc3Rl aW5ncmFtIGZyZWUuLi4uICovCiAgICBmcmVlKHApOwoKICAgIHJldHVybihmcm9vdCk7Cn0KCi8q CiAqIEZ1bmN0aW9uOiBQcmVwcm9jRGVmcmFnKFBhY2tldCAqKQogKiBQdXJwb3NlOgogKiBEcml2 ZXIgZnVuY3Rpb24gZm9yIHRoZSBJUCBkZWZyYWdtZW50YXRpb24gcHJlcHJvY2Vzc29yLgogKiBB cmd1bWVudHM6IHAgPT4gcG9pbnRlciB0byB0aGUgY3VycmVudCBwYWNrZXQgZGF0YSBzdHJ1Y3QK ICogUmV0dXJuczogdm9pZCBmdW5jdGlvbgogKi8Kdm9pZCBQcmVwcm9jRGVmcmFnKFBhY2tldCAq cCkKewogICAgUGFja2V0ICpwYWNrZXRfY29weTsKICAgIHN0cnVjdCBwY2FwX3BrdGhkciAqZnJl ZXRlbXA7CiAgICBpbnQgb3ZlcmhlYWQ7CiAgICBpbnQgY2FwOwogICAgdV9jaGFyICp0bXA7CiAg ICBUcmVlICpuZXdfZnJvb3Q7CgogICAgaWYoIXAgfHwgIXAtPnBrdGggfHwgIXAtPnBrdCkKICAg IHsKICAgICAgICBpZihwdi52ZXJib3NlX2ZsYWcpCiAgICAgICAgewogICAgICAgICAgICBFcnJv ck1lc3NhZ2UoIiVzXG4iLCJHYXJiYWdlIFBhY2tldCB3aXRoIE51bGwgUG9pbnRlciBkaXNjYXJk ZWQhIik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm47CiAgICB9CgogICAgLyogY2hlY2sgdG8g bWFrZSBzdXJlIHRoZSBJUCBoZWFkZXIgZXhpc3RzIGFuZCB0aGF0IAogICAgICogdGhlcmUgaXNu J3QgYSBiYWQgSVAgY2hlY2tzdW0KICAgICAqLwogICAgaWYoIXAtPmlwaCB8fCAocC0+Y3N1bV9m bGFncyAmIENTRV9JUCkpCiAgICB7CiAgICAgICAgcmV0dXJuOyAgICAgIAogICAgfQoKICAgIGlm KHAtPmZyYWdfZmxhZykKICAgIHsgIC8qIGhlYWRzIHVwLCBsaXZlIGZyYWdtZW50cyBpbmJvdW5k ICAqLwogICAgICAgIG92ZXJoZWFkID0gKGNoYXIqKXAtPnBrdCAtIChjaGFyKilwLT5wa3RoOyAv KiArNCBteXN0ZXJ5IHBvaW50cyAqLwogICAgICAgIC8qIExpbnV4IGZpeCBjb2RlICovCiAgICAg ICAgaWYob3ZlcmhlYWQgPCAxIHx8IG92ZXJoZWFkID4gc2l6ZW9mKHN0cnVjdCBwY2FwX3BrdGhk cikgKyAyKQogICAgICAgICAgICBvdmVyaGVhZCA9IHNpemVvZihzdHJ1Y3QgcGNhcF9wa3RoZHIp ICsgMjsKCiAgICAgICAgcGFja2V0X2NvcHkgPSAoUGFja2V0ICopIERlZnJhZ0FsbG9jKHNpemVv ZihQYWNrZXQpKTsKCiAgICAgICAgaWYoIXBhY2tldF9jb3B5KQogICAgICAgIHsKICAgICAgICAg ICAgRXJyb3JNZXNzYWdlKCJbIV0gRVJST1I6IENhbm5vdCBhbGxvY2F0ZSBmcmFnbWVudCAiCiAg ICAgICAgICAgICAgICAgICAgICAgICAiYnVmZmVyKHVzYWdlIDB4JVgpXG4iLGZyYWdtZW11c2Up OwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKCiAgICAgICAgbWVtY3B5KHBhY2tldF9j b3B5LCBwLCBzaXplb2YoUGFja2V0KSk7CiAgICAgICAgY2FwID0gcC0+cGt0aC0+Y2FwbGVuICsg b3ZlcmhlYWQ7CiAgICAgICAgdG1wID0gKHVfY2hhciAqKSBEZWZyYWdBbGxvYyhjYXAgKyAyMCk7 CiAgICAgICAgcGFja2V0X2NvcHktPnBrdGggPSAoc3RydWN0IHBjYXBfcGt0aGRyICopIHRtcDsK CiAgICAgICAgaWYoIXBhY2tldF9jb3B5LT5wa3RoKQogICAgICAgIHsKICAgICAgICAgICAgZnJl ZShwYWNrZXRfY29weSk7CiAgICAgICAgICAgIGZyYWdtZW11c2UgLT0gc2l6ZW9mKFBhY2tldCk7 CiAgICAgICAgICAgIEVycm9yTWVzc2FnZSgiWyFdIEVSUk9SOiBDYW5ub3QgYWxsb2NhdGUgZnJh Z21lbnQgIgogICAgICAgICAgICAgICAgICAgICAgICAgImJ1ZmZlcih1c2FnZSAlWClcbiIsZnJh Z21lbXVzZSk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHBhY2tldF9j b3B5LT5wa3QgPSAodV9jaGFyKilwYWNrZXRfY29weS0+cGt0aCArIG92ZXJoZWFkOwogICAgICAg IHBhY2tldF9jb3B5LT5pcGggPSAoSVBIZHIqKSgodV9jaGFyKilwYWNrZXRfY29weS0+cGt0ICsg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgodV9jaGFyKilwLT5pcGggLSAodV9jaGFyKilw LT5wa3QpKTsKCiAgICAgICAgLyogY2xlYXJlZCBieSBNRlIsIGFjY291bnRlZCBmb3IgYmVsb3cg Ki8KICAgICAgICAvKmZyYWdtZW11c2UgKz0gcC0+cGt0aC0+Y2FwbGVuICsgb3ZlcmhlYWQ7Ki8K ICAgICAgICBsYXN0X2ZyYWdfdGltZS50dl9zZWMgPSBwLT5wa3RoLT50cy50dl9zZWM7CiAgICAg ICAgbGFzdF9mcmFnX3RpbWUudHZfdXNlYyA9IHAtPnBrdGgtPnRzLnR2X3VzZWM7CiAgICAgICAg LyoqKioqKiB1cGRhdGUgdGhlIHRpbWVvdXQgdGhyZXNob2xkIGdsb2JhbCBzbyBmcmFnY29tcGFy ZSBjYW4KICAgICAgICAgKioqKioqIHVzZSBpdC4KICAgICAgICAgKioqKioqLwoKICAgICAgICBp ZihmcmFnbWVtdXNlIDwgMCkKICAgICAgICAgICAgZnJhZ21lbXVzZSA9IDA7CiAgICAgICAgZnJh Z3RpbWVvdXQudHZfc2VjID0gCiAgICAgICAgICAgIChpbnQpKChmbG9hdClGUkFHVElNRU9VVFNF QyooKE1FTUhBUkRMSU0tZnJhZ21lbXVzZSkvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGZsb2F0KU1FTUhBUkRMSU0pKTsKICAgICAgICBmcmFndGltZW91dC50dl91 c2VjID0gCiAgICAgICAgICAgIChpbnQpKChmbG9hdClGUkFHVElNRU9VVFVTRUMqKChNRU1IQVJE TElNLWZyYWdtZW11c2UpLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZmxvYXQpTUVNSEFSRExJTSkpOwogICAgICAgIHN1YnRpbWUoJmxhc3RfZnJhZ190aW1lLCAm ZnJhZ3RpbWVvdXQsICZ0aW1lY2hlY2spOwoKICAgICAgICAvKiB3ZSBkbyB0aGlzIHdpdGggdHdv IG1lbWNvcGllcyB0byBjb3BlIHdpdGggTGludXggCiAgICAgICAgICogbm9uLWNvbnRpZ3VvdXMg YnBmIGhlYWRlcnMgCiAgICAgICAgICovCiAgICAgICAgbWVtY3B5KHBhY2tldF9jb3B5LT5wa3Ro LCBwLT5wa3RoLCBvdmVyaGVhZCk7CiAgICAgICAgbWVtY3B5KHBhY2tldF9jb3B5LT5wa3QsIHAt PnBrdCwgcC0+cGt0aC0+Y2FwbGVuKTsKICAgICAgICBuZXdfZnJvb3QgPSBmcmFnaW5zZXJ0KHBh Y2tldF9jb3B5LCBmcm9vdCk7IAogICAgICAgIGlmKG5ld19mcm9vdCA9PSBmcm9vdCkKICAgICAg ICB7CiAgICAgICAgICAgIC8qIG91dCBvZiBtZW1vcnkgdG9zcyB0aGUgY29waWVzICovCiAgICAg ICAgICAgIGZyZWUocGFja2V0X2NvcHktPnBrdGgpOwogICAgICAgICAgICBmcmFnbWVtdXNlIC09 IChjYXAgKyAyMCk7CiAgICAgICAgICAgIGZyZWUocGFja2V0X2NvcHkpOwogICAgICAgICAgICBm cmFnbWVtdXNlIC09IHNpemVvZihQYWNrZXQpOwogICAgICAgICAgICBuZXdfZnJvb3QgPSBmcmFn YmFsYW5jZShiaXRyZXYoU0FERFIocCkpLCBuZXdfZnJvb3QpOwoJICAgIG5ld19mcm9vdCA9IGZy YWdzcGxheShwYWNrZXRfY29weSwgbmV3X2Zyb290KTsKICAgICAgICB9CiAgICAgICAgZnJvb3Qg PSBuZXdfZnJvb3Q7CgogICAgICAgIC8qIG5vdyBjaGVjayBpZiB3ZSBoYXZlIHRvIHJlYXNzZW1i bGUgYW55dGhpbmcuLi4gKi8KICAgICAgICBpZighTUYocCkpCiAgICAgICAgICAgIGZyb290ID0g UmVhc3NlbWJsZUlQKGZyb290KTsKCiAgICAgICAgLyogT0sgbm93IGVqZWN0IHRoZSB0cmFzaCAo ZnJhZ21lbnQgdGltZW91dCA6LSkgKi8KICAgICAgICBpZihmcm9vdCkKICAgICAgICB7CiAgICAg ICAgICAgIHdoaWxlKGdhcmJhZ2VsaXN0KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBM aXN0ICp0cmFzaDsKCQl0cmFzaGVqZWN0c3BpbmxvY2sgPSBUUlVFOwoJCXdoaWxlKGZyYWdhZGRy bWF0Y2goZnJvb3QtPnJpZ2h0LGdhcmJhZ2VsaXN0LT5rZXkpKQoJCXsKICAgICAgICAgICAgICAg ICAgICBmcmVldGVtcCA9IGZyb290LT5yaWdodC0+a2V5LT5wa3RoOwoJCSAgICBmcmFnbWVtdXNl IC09IGZyZWV0ZW1wLT5jYXBsZW4gKyBvdmVyaGVhZCArIDIwOwoJCSAgICBuZXdfZnJvb3QgPSBm cmFnZGVsZXRlKGZyb290LT5yaWdodC0+a2V5LCBmcm9vdC0+cmlnaHQpOwoJCSAgICBpZihuZXdf ZnJvb3QgIT0gZnJvb3QtPnJpZ2h0KQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICAgICAgICAgZnJvb3QtPnJpZ2h0ID0gbmV3X2Zyb290OwogICAgICAgICAgICAgICAgICAg ICAgICBmcmVlKGZyZWV0ZW1wKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgICAgZnJlZShmcmVldGVtcCk7CiAgICAgICAgICAgICAgICAgICAgcGMuZnJhZ190aW1lb3V0 Kys7CgkJfQogICAgICAgICAgICAgICAgZnJlZXRlbXAgPSBnYXJiYWdlbGlzdC0+a2V5LT5wa3Ro OwogICAgICAgICAgICAgICAgZnJhZ21lbXVzZSAtPSBmcmVldGVtcC0+Y2FwbGVuICsgb3Zlcmhl YWQgKyAyMDsKICAgICAgICAgICAgICAgIG5ld19mcm9vdCA9IGZyYWdkZWxldGUoZ2FyYmFnZWxp c3QtPmtleSwgZnJvb3QpOwoJCWlmKG5ld19mcm9vdCAhPSBmcm9vdCkKICAgICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICAgICBmcm9vdCA9IG5ld19mcm9vdDsKICAgICAgICAgICAgICAg ICAgICBmcmVlKGZyZWV0ZW1wKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBj LmZyYWdfdGltZW91dCsrOwogICAgICAgICAgICAgICAgdHJhc2ggPSBnYXJiYWdlbGlzdDsKICAg ICAgICAgICAgICAgIGdhcmJhZ2VsaXN0ID0gZ2FyYmFnZWxpc3QtPm5leHQ7CiAgICAgICAgICAg ICAgICBmcmVlKHRyYXNoKTsKICAgICAgICAgICAgICAgIGZyYWdtZW11c2UgLT0gc2l6ZW9mKExp c3QpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyYXNoZWplY3RzcGlubG9jayA9IEZBTFNF OwoKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuOwp9CgoKCg== --Boundary-=_OjIhCLMluHEhavsxyvYVCTMdWHUF-- --__--__-- _______________________________________________ Snort-users mailing list Snort-users () lists sourceforge net http://lists.sourceforge.net/lists/listinfo/snort-users End of Snort-users Digest _______________________________________________ Snort-users mailing list Snort-users () lists sourceforge net Go to this URL to change user options or unsubscribe: http://lists.sourceforge.net/lists/listinfo/snort-users Snort-users list archive: http://www.geocrawler.com/redir-sf.php3?list=snort-users
Current thread:
- Snort-users digest, Vol 1 #795 - 7 msgs snort-users (Jul 11)