[radvd-devel-l] check conffile perms, cleanups

Pekka Savola radvd-devel-l@litech.org
Fri, 28 Dec 2001 10:51:12 +0200 (EET)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--1589707168-1388023399-1009529472=:30036
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hello all,

In addition to the forwarding check mentioned earlier, I've committed a 
few other cleanups and enhancements, most of them triggered by a big patch 
by Marko Myllynen.  These are:

 - AdvSendAdvert defaults to off like the rest of the parameters
 - check the configuration file: must not be writable by others, if 
non-root operation, not by self/own group either (if the account is 
compromised, the file should not be writable).  This is an "advisory" 
information only like forwarding, and if debugging is enabled, it is 
ignored.
 - minor changes

Diff of all changes from the last 10 days is attached.. comments welcome, 
as always.

(nothing more in the queue at the moment..)

-- 
Pekka Savola                 "Tell me of difficulties surmounted,
Netcore Oy                   not those you stumble over and fall"
Systems. Networks. Security.  -- Robert Jordan: A Crown of Swords

--1589707168-1388023399-1009529472=:30036
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="radvd.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0112281051120.30036@netcore.fi>
Content-Description: 
Content-Disposition: attachment; filename="radvd.diff"

SW5kZXg6IENIQU5HRVMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm
aWxlOiAvd29yay9jdnNyb290L3JhZHZkL0NIQU5HRVMsdg0KcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjEyDQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTUNCmRp
ZmYgLXUgLXIxLjEyIC1yMS4xNQ0KLS0tIENIQU5HRVMJMjAwMS8xMS8yMiAw
ODozMDoyNgkxLjEyDQorKysgQ0hBTkdFUwkyMDAxLzEyLzI4IDA4OjM4OjE4
CTEuMTUNCkBAIC0xLDQgKzEsMTMgQEANCi0kSWQ6IENIQU5HRVMsdiAxLjEy
IDIwMDEvMTEvMjIgMDg6MzA6MjYgcHNhdm9sYSBFeHAgJA0KKyRJZDogQ0hB
TkdFUyx2IDEuMTUgMjAwMS8xMi8yOCAwODozODoxOCBwc2F2b2xhIEV4cCAk
DQorDQorMTIvMjgvMjAwMQlTbWFsbCBjbGVhbnVwcy4gIEFkdlNlbmRBZHZl
cnQgaXMgaW1wbGljaXRseSBvZmYgYnkNCisJCWRlZmF1bHQuICBDaGVjayBj
b25maWd1cmF0aW9uIGZpbGUgcGVybWlzc2lvbnM7IG11c3QNCisJCW5vdCBi
ZSB3cml0YWJsZSBieSBvdGhlcnMsIGFuZCBpZiBub24tcm9vdCwNCisJCW5v
dCBieSBzZWxmL293biBncm91cC4gIEJ5IE1hcmtvIE15bGx5bmVuLg0KKw0K
KzEyLzIxLzIwMDEJQ2hlY2sgdmlhIHN5c2N0bCB0aGF0IElQdjYgZm9yd2Fy
ZGluZyBpcyBlbmFibGVkOw0KKwkJZXhpdCB1bmxlc3MgZGVidWdnaW5nIGlz
IGVuYWJsZWQuICBUcmlnZ2VyZWQgYnkNCisJCU1hcmtvIE15bGx5bmVuLg0K
IA0KIDExLzIyLzIwMDEJTWluUnRyQWR2SW50ZXJ2YWwgZm9yIE1JUHY2IGlz
IDAuMDUgc2Vjb25kcywgbm90IDAuNS4NCiANCkluZGV4OiBUT0RPDQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3dvcmsvY3Zzcm9vdC9y
YWR2ZC9UT0RPLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS44DQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuOQ0KZGlmZiAtdSAtcjEuOCAtcjEuOQ0KLS0tIFRP
RE8JMjAwMS8xMS8xNCAxOTo1ODoxMAkxLjgNCisrKyBUT0RPCTIwMDEvMTIv
MjggMDc6MzE6MzIJMS45DQpAQCAtMSw0ICsxLDQgQEANCi0kSWQ6IFRPRE8s
diAxLjggMjAwMS8xMS8xNCAxOTo1ODoxMCBsdXRjaGFubiBFeHAgJA0KKyRJ
ZDogVE9ETyx2IDEuOSAyMDAxLzEyLzI4IDA3OjMxOjMyIHBzYXZvbGEgRXhw
ICQNCiANCiByZWFkIGxpc3Qgb2YgaW50ZXJmYWNlcyB3aXRoIFNJT0NHSUZD
T05GIChBRl9JTkVUNiBzdXBwb3J0IGluIHRoZSBrZXJuZWwgd291bGQNCiBi
ZSBuaWNlKSBvciBmcm9tIC9wcm9jDQpAQCAtOCw5ICs4LDYgQEANCiANCiBp
bmZvcm1hdGlvbiBpbiBJTlRSTy5odG1sIGlzIG91dGRhdGVkDQogDQotYWRk
IG9uIG9wdGlvbiB0byByYWR2ZHVtcCB0byBkdW1wIGluY29taW5nIFJBcyBh
cyBhIHJhZHZkIGNvbmZpZyBmaWxlDQotKGluaXRhbCBjb2RlIGlzIGluLCBj
b2RlZCBieSBNYXJrbykNCi0NCiB1c2UgZ2V0YWRkcmluZm8oKSBpbnN0ZWFk
IG9mIGluZXRfcHRvbiBpbiBzY2FubmVyLmwgc28gdGhhdCBETlMgbmFtZXMN
CiBjYW4gYmUgdXNlZA0KIA0KQEAgLTIyLDEwICsxOSw2IEBADQogZnJvbSBm
b3JraW5nLl0NCiANCiBzdXBwb3J0IGZvciBmZXcgcHJvdG9jb2wgY29uc3Rh
bnRzIGRlZmluZWQgaW4gUkZDIDI0NjEgU2VjIDEwIGlzIG1pc3NpbmcuDQot
DQotd2hlbiBzdGFydGluZywgY2hlY2sgdGhhdCBuZXQuaXB2NC5jb25mLmFs
bC5mb3J3YXJkaW5nPTEgKExpbnV4KSBvciANCi1uZXQuaW5ldDYuaXA2LmZv
cndhcmRpbmc9MSAoQlNEKSwgd2FybiBpZiBvdGhlcndpc2UgKG5vdCBtdWNo
IHNlbnNlIHJ1bm5pbmcNCi1yYWR2ZCBvdGhlcndpc2UsIHVubGVzcyB0ZXN0
aW5nIG9yIGRlYnVnZ2luZykNCiANCiAqIHJlYWQgdGhlIG1hbiBwYWdlcyBv
bmUgbW9yZSB0aW1lIGFuZCBtYWtlIHN1cmUgdGhlaXIgYXJlIHVuZGVyc3Rh
bmRhYmxlDQogICBhbmQgRW5nbGlzaCBpcyBjb3JyZWN0DQpJbmRleDogZGVm
YXVsdHMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC93
b3JrL2N2c3Jvb3QvcmFkdmQvZGVmYXVsdHMuaCx2DQpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNQ0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYNCmRpZmYgLXUg
LXIxLjUgLXIxLjYNCi0tLSBkZWZhdWx0cy5oCTIwMDEvMTEvMjIgMDg6MzA6
MjYJMS41DQorKysgZGVmYXVsdHMuaAkyMDAxLzEyLzI4IDA3OjM4OjQ0CTEu
Ng0KQEAgLTEsNSArMSw1IEBADQogLyoNCi0gKiAgICRJZDogZGVmYXVsdHMu
aCx2IDEuNSAyMDAxLzExLzIyIDA4OjMwOjI2IHBzYXZvbGEgRXhwICQNCisg
KiAgICRJZDogZGVmYXVsdHMuaCx2IDEuNiAyMDAxLzEyLzI4IDA3OjM4OjQ0
IHBzYXZvbGEgRXhwICQNCiAgKg0KICAqICAgQXV0aG9yczoNCiAgKiAgICBM
YXJzIEZlbm5lYmVyZwkJPGxmQGVsZW1lbnRhbC5uZXQ+CSANCkBAIC0yOSw3
ICsyOSw3IEBADQogDQogLyogRm9yIGVhY2ggbXVsdGljYXN0IGludGVyZmFj
ZTogKi8NCiANCi0vKiAjZGVmaW5lIERGTFRfQWR2U2VuZEFkdgkJbm90IHVz
ZWQsIGFsd2F5cyByZWFkIGZyb20gY29uZmlnICovDQorI2RlZmluZSBERkxU
X0FkdlNlbmRBZHYJCQkwDQogI2RlZmluZSBERkxUX01heFJ0ckFkdkludGVy
dmFsCQk2MDANCiAjZGVmaW5lIERGTFRfTWluUnRyQWR2SW50ZXJ2YWwoaWZh
Y2UpCSgoaW50KSgwLjMzICogKGRvdWJsZSkoaWZhY2UpLT5NYXhSdHJBZHZJ
bnRlcnZhbCkpDQogI2RlZmluZSBERkxUX0Fkdk1hbmFnZWRGbGFnCQkwDQpJ
bmRleDogaW5jbHVkZXMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT
IGZpbGU6IC93b3JrL2N2c3Jvb3QvcmFkdmQvaW5jbHVkZXMuaCx2DQpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuOQ0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEw
DQpkaWZmIC11IC1yMS45IC1yMS4xMA0KLS0tIGluY2x1ZGVzLmgJMjAwMS8x
MS8xNCAxOTo1ODoxMQkxLjkNCisrKyBpbmNsdWRlcy5oCTIwMDEvMTIvMjgg
MDc6MjU6MTEJMS4xMA0KQEAgLTEsNSArMSw1IEBADQogLyoNCi0gKiAgICRJ
ZDogaW5jbHVkZXMuaCx2IDEuOSAyMDAxLzExLzE0IDE5OjU4OjExIGx1dGNo
YW5uIEV4cCAkDQorICogICAkSWQ6IGluY2x1ZGVzLmgsdiAxLjEwIDIwMDEv
MTIvMjggMDc6MjU6MTEgcHNhdm9sYSBFeHAgJA0KICAqDQogICogICBBdXRo
b3JzOg0KICAqICAgIExhcnMgRmVubmViZXJnCQk8bGZAZWxlbWVudGFsLm5l
dD4JIA0KQEAgLTU5LDYgKzU5LDcgQEANCiAjaW5jbHVkZSA8c3lzL3NvY2tl
dC5oPg0KICNpbmNsdWRlIDxzeXMvdGltZS5oPg0KICNpbmNsdWRlIDxzeXMv
dWlvLmg+DQorI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4NCiANCiAjaW5jbHVk
ZSA8c3lzL3N0YXQuaD4NCiAjaW5jbHVkZSA8ZmNudGwuaD4NCkluZGV4OiBp
bnRlcmZhY2UuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6
IC93b3JrL2N2c3Jvb3QvcmFkdmQvaW50ZXJmYWNlLmMsdg0KcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjMNCnJldHJpZXZpbmcgcmV2aXNpb24gMS40DQpkaWZm
IC11IC1yMS4zIC1yMS40DQotLS0gaW50ZXJmYWNlLmMJMjAwMS8xMS8xNCAx
OTo1ODoxMQkxLjMNCisrKyBpbnRlcmZhY2UuYwkyMDAxLzEyLzI4IDA3OjM4
OjQ0CTEuNA0KQEAgLTEsNSArMSw1IEBADQogLyoNCi0gKiAgICRJZDogaW50
ZXJmYWNlLmMsdiAxLjMgMjAwMS8xMS8xNCAxOTo1ODoxMSBsdXRjaGFubiBF
eHAgJA0KKyAqICAgJElkOiBpbnRlcmZhY2UuYyx2IDEuNCAyMDAxLzEyLzI4
IDA3OjM4OjQ0IHBzYXZvbGEgRXhwICQNCiAgKg0KICAqICAgQXV0aG9yczoN
CiAgKiAgICBMYXJzIEZlbm5lYmVyZwkJPGxmQGVsZW1lbnRhbC5uZXQ+CSAN
CkBAIC0yMyw2ICsyMyw3IEBADQogew0KIAltZW1zZXQoaWZhY2UsIDAsIHNp
emVvZihzdHJ1Y3QgSW50ZXJmYWNlKSk7DQogDQorCWlmYWNlLT5BZHZTZW5k
QWR2ZXJ0CSAgPSBERkxUX0FkdlNlbmRBZHY7DQogCWlmYWNlLT5NYXhSdHJB
ZHZJbnRlcnZhbCAgPSBERkxUX01heFJ0ckFkdkludGVydmFsOw0KIAlpZmFj
ZS0+QWR2U291cmNlTExBZGRyZXNzID0gREZMVF9BZHZTb3VyY2VMTEFkZHJl
c3M7DQogCWlmYWNlLT5BZHZSZWFjaGFibGVUaW1lCSAgPSBERkxUX0FkdlJl
YWNoYWJsZVRpbWU7DQpJbmRleDogcGF0aG5hbWVzLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NClJDUyBmaWxlOiAvd29yay9jdnNyb290L3JhZHZkL3Bh
dGhuYW1lcy5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4zDQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuNA0KZGlmZiAtdSAtcjEuMyAtcjEuNA0KLS0tIHBh
dGhuYW1lcy5oCTIwMDEvMTEvMTQgMTk6NTg6MTEJMS4zDQorKysgcGF0aG5h
bWVzLmgJMjAwMS8xMi8yOCAwNzoyNToxMQkxLjQNCkBAIC0xLDUgKzEsNSBA
QA0KIC8qDQotICogICAkSWQ6IHBhdGhuYW1lcy5oLHYgMS4zIDIwMDEvMTEv
MTQgMTk6NTg6MTEgbHV0Y2hhbm4gRXhwICQNCisgKiAgICRJZDogcGF0aG5h
bWVzLmgsdiAxLjQgMjAwMS8xMi8yOCAwNzoyNToxMSBwc2F2b2xhIEV4cCAk
DQogICoNCiAgKiAgIEF1dGhvcnM6DQogICogICAgUGVkcm8gUm9xdWUJCTxy
b3F1ZUBkaS5mYy51bC5wdD4NCkBAIC0zMSw1ICszMSwxMSBAQA0KIA0KICNk
ZWZpbmUgUEFUSF9QUk9DX05FVF9JRl9JTkVUNiAiL3Byb2MvbmV0L2lmX2lu
ZXQ2Ig0KICNkZWZpbmUgUEFUSF9QUk9DX05FVF9JR01QNiAiL3Byb2MvbmV0
L2lnbXA2Ig0KKw0KKyNpZmRlZiBfX2xpbnV4X18NCisjZGVmaW5lIFNZU0NU
TF9JUDZfRk9SV0FSRElORyBDVExfTkVULCBORVRfSVBWNiwgTkVUX0lQVjZf
Q09ORiwgTkVUX1BST1RPX0NPTkZfQUxMLCBORVRfSVBWNl9GT1JXQVJESU5H
DQorI2Vsc2UgLyogQlNEICovDQorI2RlZmluZSBTWVNDVExfSVA2X0ZPUldB
UkRJTkcgQ1RMX05FVCwgUEZfSU5FVDYsIElQUFJPVE9fSVBWNiwgSVBWNkNU
TF9GT1JXQVJESU5HDQorI2VuZGlmDQogDQogI2VuZGlmDQpJbmRleDogcmFk
dmQuOC5tYW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv
d29yay9jdnNyb290L3JhZHZkL3JhZHZkLjgubWFuLHYNCnJldHJpZXZpbmcg
cmV2aXNpb24gMS40DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNg0KZGlmZiAt
dSAtcjEuNCAtcjEuNg0KLS0tIHJhZHZkLjgubWFuCTIwMDEvMTEvMTQgMTk6
NTg6MTEJMS40DQorKysgcmFkdmQuOC5tYW4JMjAwMS8xMi8yOCAwODozODox
OAkxLjYNCkBAIC0xLDUgKzEsNSBAQA0KIC5cIg0KLS5cIiAgICRJZDogcmFk
dmQuOC5tYW4sdiAxLjQgMjAwMS8xMS8xNCAxOTo1ODoxMSBsdXRjaGFubiBF
eHAgJA0KKy5cIiAgICRJZDogcmFkdmQuOC5tYW4sdiAxLjYgMjAwMS8xMi8y
OCAwODozODoxOCBwc2F2b2xhIEV4cCAkDQogLlwiDQogLlwiICAgQXV0aG9y
czoNCiAuXCIgICAgTGFycyBGZW5uZWJlcmcJCTxsZkBlbGVtZW50YWwubmV0
PgkgDQpAQCAtMzYsNiArMzYsMTggQEANCiBXaXRoIHRoZXNlIGFkdmVydGlz
ZW1lbnRzIGhvc3RzIGNhbiBhdXRvbWF0aWNhbGx5IGNvbmZpZ3VyZSB0aGVp
cg0KIGFkZHJlc3NlcyBhbmQgc29tZSBvdGhlciBwYXJhbWV0ZXJzLiBUaGV5
IGFsc28gY2FuIGNob29zZSBhIGRlZmF1bHQNCiByb3V0ZXIgYmFzZWQgb24g
dGhlc2UgYWR2ZXJ0aXNlbWVudHMuDQorDQorTm90ZSB0aGF0IGlmIGRlYnVn
Z2luZyBpcyBub3QgZW5hYmxlZCwNCisuQiByYWR2ZA0KK3dpbGwgbm90IHN0
YXJ0IGlmIElQdjYgZm9yd2FyZGluZyBpcyBkaXNhYmxlZC4gIElQdjYgZm9y
d2FyZGluZyBjYW4gYmUNCitjb250cm9sbGVkIHZpYSBzeXNjdGwoOCksDQor
LkIgbmV0LmlwdjYuY29uZi5hbGwuZm9yd2FyZGluZw0KK29uIExpbnV4IG9y
DQorLkIgbmV0LmluZXQ2LmlwNi5mb3J3YXJkaW5nDQorb24gQlNELg0KKw0K
K1NpbWlsYXJseSwgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0IG5vdCBi
ZSB3cml0YWJsZSBieSBvdGhlcnMsIGFuZCBpZg0KK25vbi1yb290IG9wZXJh
dGlvbiBpcyByZXF1ZXN0ZWQsIG5vdCBldmVuIGJ5IHNlbGYvb3duIGdyb3Vw
Lg0KIA0KIC5TSCBPUFRJT05TDQogDQpJbmRleDogcmFkdmQuYw0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC93b3JrL2N2c3Jvb3QvcmFk
dmQvcmFkdmQuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuOA0KcmV0cmll
dmluZyByZXZpc2lvbiAxLjEyDQpkaWZmIC11IC1yMS44IC1yMS4xMg0KLS0t
IHJhZHZkLmMJMjAwMS8xMS8yMCAyMTowNzoxMgkxLjgNCisrKyByYWR2ZC5j
CTIwMDEvMTIvMjggMDg6Mzk6NTQJMS4xMg0KQEAgLTEsNSArMSw1IEBADQog
LyoNCi0gKiAgICRJZDogcmFkdmQuYyx2IDEuOCAyMDAxLzExLzIwIDIxOjA3
OjEyIHBzYXZvbGEgRXhwICQNCisgKiAgICRJZDogcmFkdmQuYyx2IDEuMTIg
MjAwMS8xMi8yOCAwODozOTo1NCBwc2F2b2xhIEV4cCAkDQogICoNCiAgKiAg
IEF1dGhvcnM6DQogICogICAgUGVkcm8gUm9xdWUJCTxyb3F1ZUBkaS5mYy51
bC5wdD4NCkBAIC0yMyw3ICsyMyw3IEBADQogDQogY2hhciB1c2FnZV9zdHJb
XSA9DQogCSJbLXZoXSBbLWQgbGV2ZWxdIFstQyBjb25maWdfZmlsZV0gWy1t
IGxvZ19tZXRob2RdIFstbCBsb2dfZmlsZV1cbiINCi0JIlx0Wy1mIGZhY2ls
aXR5XSBbLXUgdXNlcm5hbWVdIFstdCBjaHJvb3RkaXJdIjsNCisJIlx0Wy1m
IGZhY2lsaXR5XSBbLXAgcGlkX2ZpbGVdIFstdSB1c2VybmFtZV0gWy10IGNo
cm9vdGRpcl0iOw0KIA0KICNpZmRlZiBIQVZFX0dFVE9QVF9MT05HDQogc3Ry
dWN0IG9wdGlvbiBwcm9nX29wdFtdID0gew0KQEAgLTM0LDcgKzM0LDcgQEAN
CiAJeyJsb2dtZXRob2QiLCAxLCAwLCAnbSd9LA0KIAl7ImZhY2lsaXR5Iiwg
MSwgMCwgJ2YnfSwNCiAJeyJ1c2VybmFtZSIsIDEsIDAsICd1J30sDQotCXsi
Y2hyb290ZGlyIiwxLCAwLCAndCd9LA0KKwl7ImNocm9vdGRpciIsIDEsIDAs
ICd0J30sDQogCXsidmVyc2lvbiIsIDAsIDAsICd2J30sDQogCXsiaGVscCIs
IDAsIDAsICdoJ30sDQogCXtOVUxMLCAwLCAwLCAwfQ0KQEAgLTU3LDEwICs1
NywxMiBAQA0KIHZvaWQgdGltZXJfaGFuZGxlcih2b2lkICpkYXRhKTsNCiB2
b2lkIGtpY2tvZmZfYWR2ZXJ0cyh2b2lkKTsNCiB2b2lkIHJlbG9hZF9jb25m
aWcodm9pZCk7DQotaW50IGRyb3Bfcm9vdF9wcml2aWxlZ2VzKGNvbnN0IGNo
YXIgKik7DQotaW50IHJlYWRpbl9jb25maWcoY2hhciAqKTsNCiB2b2lkIHZl
cnNpb24odm9pZCk7DQogdm9pZCB1c2FnZSh2b2lkKTsNCitpbnQgZHJvcF9y
b290X3ByaXZpbGVnZXMoY29uc3QgY2hhciAqKTsNCitpbnQgcmVhZGluX2Nv
bmZpZyhjaGFyICopOw0KK2ludCBjaGVja19pcDZfZm9yd2FyZGluZygpOw0K
K2ludCBjaGVja19jb25mZmlsZV9wZXJtKGNvbnN0IGNoYXIgKiwgY29uc3Qg
Y2hhciAqKTsNCiANCiBpbnQNCiBtYWluKGludCBhcmdjLCBjaGFyICphcmd2
W10pDQpAQCAtMTU2LDcgKzE1OCw3IEBADQogDQogCWlmIChjaHJvb3RkaXIp
IHsNCiAJCWlmICghdXNlcm5hbWUpIHsNCi0JCQlmcHJpbnRmKHN0ZGVyciwg
IkNocm9vdCBhcyByb290IGlzIG5vdCBzYWZlLCBleGl0aW5nLlxuIik7DQor
CQkJZnByaW50ZihzdGRlcnIsICJDaHJvb3QgYXMgcm9vdCBpcyBub3Qgc2Fm
ZSwgZXhpdGluZ1xuIik7DQogCQkJZXhpdCgxKTsNCiAJCX0NCiAJCQ0KQEAg
LTE4NCwxMCArMTg2LDI4IEBADQogCWlmICh1c2VybmFtZSkgew0KIAkJaWYg
KGRyb3Bfcm9vdF9wcml2aWxlZ2VzKHVzZXJuYW1lKSA8IDApDQogCQkJZXhp
dCgxKTsNCisJfQ0KIA0KLQkvKiBYWFg6IHNhbml0eSBjaGVjazogcmFkdmQu
Y29uZiBzaG91bGQgbm90IGJlIHdyaXRhYmxlIGJ5IHVzZXJuYW1lICovDQor
CS8qIGNoZWNrIHRoYXQgJ290aGVyJyBjYW5ub3Qgd3JpdGUgdGhlIGZpbGUN
CisgICAgICAgICAqIGZvciBub24tcm9vdCwgYWxzbyB0aGF0IHNlbGYvb3du
IGdyb3VwIGNhbid0IGVpdGhlcg0KKyAgICAgICAgICovDQorCWlmIChjaGVj
a19jb25mZmlsZV9wZXJtKHVzZXJuYW1lLCBjb25mX2ZpbGUpIDwgMCkgew0K
KwkJaWYgKGdldF9kZWJ1Z2xldmVsKCkgPT0gMCkNCisJCQlleGl0KDEpOw0K
KwkJZWxzZQ0KKwkJCWxvZyhMT0dfV0FSTklORywgIkluc2VjdXJlIGZpbGUg
cGVybWlzc2lvbnMsIGJ1dCBjb250aW51aW5nIGFueXdheSIpOw0KIAl9DQog
CQ0KKwkvKiBpZiB3ZSBrbm93IGhvdyB0byBkbyBpdCwgY2hlY2sgd2hldGhl
ciBmb3J3YXJkaW5nIGlzIGVuYWJsZWQgKi8NCisJaWYgKGNoZWNrX2lwNl9m
b3J3YXJkaW5nKCkpIHsNCisJCWlmIChnZXRfZGVidWdsZXZlbCgpID09IDAp
IHsNCisJCQlsb2coTE9HX0VSUiwgIklQdjYgZm9yd2FyZGluZyBzZWVtcyB0
byBiZSBkaXNhYmxlZCwgZXhpdGluZyIpOw0KKwkJCWV4aXQoMSk7DQorCQl9
DQorCQllbHNlDQorCQkJbG9nKExPR19XQVJOSU5HLCAiSVB2NiBmb3J3YXJk
aW5nIHNlZW1zIHRvIGJlIGRpc2FibGVkLCBidXQgY29udGludWluZyBhbnl3
YXkuIik7DQorCX0NCisNCiAJLyogcGFyc2UgY29uZmlnIGZpbGUgKi8NCiAJ
aWYgKHJlYWRpbl9jb25maWcoY29uZl9maWxlKSA8IDApDQogCQlleGl0KDEp
Ow0KQEAgLTM5OSw2ICs0MTksNzQgQEANCiAJCXJldHVybiAoLTEpOw0KIAl9
DQogCXJldHVybiAwOw0KK30NCisNCitpbnQNCitjaGVja19jb25mZmlsZV9w
ZXJtKGNvbnN0IGNoYXIgKnVzZXJuYW1lLCBjb25zdCBjaGFyICpjb25mX2Zp
bGUpDQorew0KKwlzdHJ1Y3Qgc3RhdCAqc3QgPSBOVUxMOw0KKwlzdHJ1Y3Qg
cGFzc3dkICpwdyA9IE5VTEw7DQorCUZJTEUgKmZwID0gZm9wZW4oY29uZl9m
aWxlLCAiciIpOw0KKw0KKwlpZiAoZnAgPT0gTlVMTCkgew0KKwkJbG9nKExP
R19FUlIsICJjYW4ndCBvcGVuICVzOiAlcyIsIGNvbmZfZmlsZSwgc3RyZXJy
b3IoZXJybm8pKTsNCisJCXJldHVybiAoLTEpOw0KKwl9DQorCWZjbG9zZShm
cCk7DQorDQorCXN0ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc3RhdCkpOw0K
KwlpZiAoc3QgPT0gTlVMTCkNCisJCWdvdG8gZXJyb3JvdXQ7DQorDQorCWlm
ICghdXNlcm5hbWUpDQorCQl1c2VybmFtZSA9ICJyb290IjsNCisJDQorCXB3
ID0gZ2V0cHduYW0odXNlcm5hbWUpOw0KKw0KKwlpZiAoc3RhdChjb25mX2Zp
bGUsIHN0KSB8fCBwdyA9PSBOVUxMKQ0KKwkJZ290byBlcnJvcm91dDsNCisN
CisJaWYgKHN0LT5zdF9tb2RlICYgU19JV09USCkgew0KKyAgICAgICAgICAg
ICAgICBsb2coTE9HX0VSUiwgIkluc2VjdXJlIGZpbGUgcGVybWlzc2lvbnMg
KHdyaXRhYmxlIGJ5IG90aGVycyk6ICVzIiwgY29uZl9maWxlKTsNCisJCWdv
dG8gZXJyb3JvdXQ7DQorICAgICAgICB9DQorDQorCS8qIGZvciBub24tcm9v
dDogbXVzdCBub3QgYmUgd3JpdGFibGUgYnkgc2VsZi9vd24gZ3JvdXAgKi8N
CisJaWYgKHN0cm5jbXAodXNlcm5hbWUsICJyb290IiwgNSkgIT0gMCAmJg0K
KwkgICAgKChzdC0+c3RfbW9kZSAmIFNfSVdHUlAgJiYgcHctPnB3X2dpZCA9
PSBzdC0+c3RfZ2lkKSB8fA0KKwkgICAgIChzdC0+c3RfbW9kZSAmIFNfSVdV
U1IgJiYgcHctPnB3X3VpZCA9PSBzdC0+c3RfdWlkKSkpIHsNCisgICAgICAg
ICAgICAgICAgbG9nKExPR19FUlIsICJJbnNlY3VyZSBmaWxlIHBlcm1pc3Np
b25zICh3cml0YWJsZSBieSBzZWxmL2dyb3VwKTogJXMiLCBjb25mX2ZpbGUp
Ow0KKwkJZ290byBlcnJvcm91dDsNCisgICAgICAgIH0NCisNCisJZnJlZShz
dCk7DQorICAgICAgICByZXR1cm4gMDsNCisNCitlcnJvcm91dDoNCisJZnJl
ZShzdCk7DQorCXJldHVybigtMSk7DQorfQ0KKw0KK2ludA0KK2NoZWNrX2lw
Nl9mb3J3YXJkaW5nKHZvaWQpDQorew0KKwlpbnQgZm9yd19zeXNjdGxbXSA9
IHsgU1lTQ1RMX0lQNl9GT1JXQVJESU5HIH07DQorCWludCB2YWx1ZTsNCisJ
c2l6ZV90IHNpemUgPSBzaXplb2YodmFsdWUpOw0KKw0KKwlpZiAoc3lzY3Rs
KGZvcndfc3lzY3RsLCBzaXplb2YoZm9yd19zeXNjdGwpL3NpemVvZihmb3J3
X3N5c2N0bFswXSksDQorCSAgICAmdmFsdWUsICZzaXplLCBOVUxMLCAwKSA8
IDApIHsNCisJCWxvZyhMT0dfREVCVUcsICJDb3JyZWN0IElQdjYgZm9yd2Fy
ZGluZyBzeXNjdGwgYnJhbmNoIG5vdCBmb3VuZCwgIg0KKwkJCSJwZXJoYXBz
IHRoZSBrZXJuZWwgaW50ZXJmYWNlIGhhcyBjaGFuZ2VkPyIpOw0KKwkJcmV0
dXJuKDApOwkvKiB0aGlzIGlzIG9mIGFkdmlzb3J5IHZhbHVlIG9ubHkgKi8N
CisJfQ0KKwkNCisJaWYgKHZhbHVlICE9IDEpIHsNCisJCWxvZyhMT0dfREVC
VUcsICJJUHY2IGZvcndhcmRpbmcgc2V0dGluZyBpczogJXUsIHNob3VsZCBi
ZSAxIiwgdmFsdWUpOw0KKwkJcmV0dXJuKC0xKTsNCisJfQ0KKwkJDQorCXJl
dHVybigwKTsNCiB9DQogDQogaW50DQpJbmRleDogcmFkdmQuY29uZi41Lm1h
bg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC93b3JrL2N2
c3Jvb3QvcmFkdmQvcmFkdmQuY29uZi41Lm1hbix2DQpyZXRyaWV2aW5nIHJl
dmlzaW9uIDEuNQ0KcmV0cmlldmluZyByZXZpc2lvbiAxLjYNCmRpZmYgLXUg
LXIxLjUgLXIxLjYNCi0tLSByYWR2ZC5jb25mLjUubWFuCTIwMDEvMTEvMjIg
MDg6MzA6MjYJMS41DQorKysgcmFkdmQuY29uZi41Lm1hbgkyMDAxLzEyLzI4
IDA3OjM4OjQ0CTEuNg0KQEAgLTEsNSArMSw1IEBADQogLlwiDQotLlwiICAg
JElkOiByYWR2ZC5jb25mLjUubWFuLHYgMS41IDIwMDEvMTEvMjIgMDg6MzA6
MjYgcHNhdm9sYSBFeHAgJA0KKy5cIiAgICRJZDogcmFkdmQuY29uZi41Lm1h
bix2IDEuNiAyMDAxLzEyLzI4IDA3OjM4OjQ0IHBzYXZvbGEgRXhwICQNCiAu
XCINCiAuXCIgICBBdXRob3JzOg0KIC5cIiAgICBMYXJzIEZlbm5lYmVyZwkJ
PGxmQGVsZW1lbnRhbC5uZXQ+DQpAQCAtNjcsNiArNjcsOCBAQA0KIC5CIG9u
DQogdG8gZW5hYmxlIGFkdmVydGlzZW1lbnQgb24gdGhpcyBpbnRlcmZhY2Uu
DQogDQorRGVmYXVsdDogb2ZmDQorDQogLlRQDQogLkJSIFVuaWNhc3RPbmx5
ICIgIiBvbiB8IG9mZg0KIA0KQEAgLTc2LDcgKzc4LDcgQEANCiBzb2xpY2l0
aW5nIG5vZGUuICBUaGlzIG9wdGlvbiBpcyBuZWNlc3NhcnkgZm9yIG5vbi1i
cm9hZGNhc3QsDQogbXVsdGlwbGUtYWNjZXNzIGxpbmtzLCBzdWNoIGFzIElT
QVRBUC4NCiANCi1EZWZhdWx0OiBubw0KK0RlZmF1bHQ6IG9mZg0KIA0KIC5U
UA0KIC5CUiAiTWF4UnRyQWR2SW50ZXJ2YWwgIiBzZWNvbmRzDQo=
--1589707168-1388023399-1009529472=:30036--