Send connman mailing list submissions to
[email protected]
To subscribe or unsubscribe via email, send a message with subject or
body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."
Today's Topics:
1. [PATCH] gdbus: Replace snprintf() with g_strdup_printf()
(Daniel Wagner)
2. Re: IP Accounting for WiFi Clients (Aravind Gunasekaran)
----------------------------------------------------------------------
Date: Mon, 25 May 2020 10:13:32 +0200
From: Daniel Wagner <[email protected]>
Subject: [PATCH] gdbus: Replace snprintf() with g_strdup_printf()
To: [email protected]
Cc: [email protected], Daniel Wagner <[email protected]>
Message-ID: <[email protected]>
snprintf returns the number of characters that would have been written
if n had been sufficiently large. If the format string is longer than
the (size - offset), the snprintf will return a value larger than
the (size-offset). In normal cases,
DBUS_MAXIMUM_MATCH_RULE_LENGTH(1024) is large, but an attacker can
make malicious, large-scale inputs.
Note, g_strdup() and g_strdup_printf() will call abort if no memory
can't be allocated. Therefore we don't need to check for NULL
pointers.
Reported by jybarnes21
---
gdbus/watch.c | 65 ++++++++++++++++++++++++++++++++++-----------------
1 file changed, 43 insertions(+), 22 deletions(-)
diff --git a/gdbus/watch.c b/gdbus/watch.c
index 447e4867198e..8fa76cdaf8df 100644
--- a/gdbus/watch.c
+++ b/gdbus/watch.c
@@ -136,38 +136,55 @@ static struct filter_data
*filter_data_find(DBusConnection *connection)
return NULL;
}
-static void format_rule(struct filter_data *data, char *rule, size_t size)
+static char *format_rule(struct filter_data *data)
{
+ char *rule, *tmp;
const char *sender;
- int offset;
- offset = snprintf(rule, size, "type='signal'");
+ rule = g_strdup("type='signal'");
sender = data->name ? : data->owner;
- if (sender)
- offset += snprintf(rule + offset, size - offset,
- ",sender='%s'", sender);
- if (data->path)
- offset += snprintf(rule + offset, size - offset,
- ",path='%s'", data->path);
- if (data->interface)
- offset += snprintf(rule + offset, size - offset,
- ",interface='%s'", data->interface);
- if (data->member)
- offset += snprintf(rule + offset, size - offset,
- ",member='%s'", data->member);
- if (data->argument)
- snprintf(rule + offset, size - offset,
- ",arg0='%s'", data->argument);
+ if (sender) {
+ tmp = rule;
+ rule = g_strdup_printf("%s,sender='%s'", rule, sender);
+ g_free(tmp);
+ }
+
+ if (data->path) {
+ tmp = rule;
+ rule = g_strdup_printf("%s,path='%s'", rule, data->path);
+ g_free(tmp);
+ }
+
+ if (data->interface){
+ tmp = rule;
+ rule = g_strdup_printf("%s,interface='%s'", rule,
+ data->interface);
+ g_free(tmp);
+ }
+
+ if (data->member) {
+ tmp = rule;
+ rule = g_strdup_printf("%s,member='%s'", rule, data->member);
+ g_free(tmp);
+ }
+
+ if (data->argument) {
+ tmp = rule;
+ rule = g_strdup_printf("%s,arg0='%s'", rule, data->argument);
+ g_free(tmp);
+ }
+
+ return rule;
}
static gboolean add_match(struct filter_data *data,
DBusHandleMessageFunction filter)
{
DBusError err;
- char rule[DBUS_MAXIMUM_MATCH_RULE_LENGTH];
+ char *rule;
- format_rule(data, rule, sizeof(rule));
+ rule = format_rule(data);
dbus_error_init(&err);
dbus_bus_add_match(data->connection, rule, &err);
@@ -175,21 +192,23 @@ static gboolean add_match(struct filter_data *data,
error("Adding match rule \"%s\" failed: %s", rule,
err.message);
dbus_error_free(&err);
+ g_free(rule);
return FALSE;
}
data->handle_func = filter;
data->registered = TRUE;
+ g_free(rule);
return TRUE;
}
static gboolean remove_match(struct filter_data *data)
{
DBusError err;
- char rule[DBUS_MAXIMUM_MATCH_RULE_LENGTH];
+ char *rule;
- format_rule(data, rule, sizeof(rule));
+ rule = format_rule(data);
dbus_error_init(&err);
@@ -198,9 +217,11 @@ static gboolean remove_match(struct filter_data *data)
error("Removing owner match rule for %s failed: %s",
rule, err.message);
dbus_error_free(&err);
+ g_free(rule);
return FALSE;
}
+ g_free(rule);
return TRUE;
}
--
2.26.2
------------------------------
Date: Mon, 25 May 2020 20:10:18 +0530
From: Aravind Gunasekaran <[email protected]>
Subject: Re: IP Accounting for WiFi Clients
To: Daniel Wagner <[email protected]>
Cc: [email protected]
Message-ID:
<CAJ0PF7f2RFZJum16Ce2_f=N7Vf_16k=mmukj1cljb9+qthl...@mail.gmail.com>
Content-Type: multipart/mixed; boundary="000000000000df1c5a05a679f506"
--000000000000df1c5a05a679f506
Content-Type: multipart/alternative; boundary="000000000000df1c5805a679f504"
--000000000000df1c5805a679f504
Content-Type: text/plain; charset="UTF-8"
Hi Daniel,
My patch for this implementation is very long. I can 't paste in the email.
so i attached it
thanks,
Aravind
On Mon, Mar 9, 2020 at 2:13 PM Daniel Wagner <[email protected]> wrote:
> Hi Guna,
>
> On Mon, Mar 09, 2020 at 03:59:12AM -0000, [email protected] wrote:
> > Currently i don't see the IP accounting feature is conman for WiFi
> Clients.
> > I like to contribute the implementation for IP Accounting for WiFi
> Clients. Can somebody provide the procedure to contribute.
>
> We use the kernel contirbution approach. That is you send the patches
> to this mailing list and I'll review/apply them.
>
> There is also doc/coding-style.txt which has some pointers.
>
> Thanks,
> Daniel
>
--
Thanks,
Aravind
--000000000000df1c5805a679f504
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hi Daniel,<div><br></div><div>My patch for this implementa=
tion is very long. I can 't paste in the email.</div><div><br></div><di=
v>so i attached it</div><div><br></div><div>thanks,</div><div>Aravind=C2=A0=
</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_=
attr">On Mon, Mar 9, 2020 at 2:13 PM Daniel Wagner <<a href=3D"mailto:wa=
[email protected]">[email protected]</a>> wrote:<br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex">Hi Guna,<br>
<br>
On Mon, Mar 09, 2020 at 03:59:12AM -0000, <a href=3D"mailto:guna.aravind@gm=
ail.com" target=3D"_blank">[email protected]</a> wrote:<br>
> Currently i don't see the IP accounting feature is conman for WiFi=
Clients.<br>
> I like to contribute the implementation for IP Accounting for WiFi Cli=
ents. Can somebody provide the procedure to contribute.<br>
<br>
We use the kernel contirbution approach. That is you send the patches<br>
to this mailing list and I'll review/apply them.<br>
<br>
There is also doc/coding-style.txt which has some pointers.<br>
<br>
Thanks,<br>
Daniel<br>
</blockquote></div><br clear=3D"all"><div><br></div>-- <br><div dir=3D"ltr"=
class=3D"gmail_signature"><div dir=3D"ltr">Thanks,<div>Aravind</div></div>=
</div>
--000000000000df1c5805a679f504--
--000000000000df1c5a05a679f506
Content-Type: application/octet-stream; name="ip-accounting.patch"
Content-Disposition: attachment; filename="ip-accounting.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_kamlkpb20>
X-Attachment-Id: f_kamlkpb20
ZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0Kb2xkIG1vZGUgMTAwNjQ0Cm5l
dyBtb2RlIDEwMDc1NQppbmRleCA1OTcxY2E5Li40NDE0OGRmCi0tLSBhL01ha2VmaWxlLmFtCisr
KyBiL01ha2VmaWxlLmFtCkBAIC0xMiw3ICsxMiw3IEBAIGluY2x1ZGVfSEVBREVSUyA9IGluY2x1
ZGUvbG9nLmggaW5jbHVkZS9wbHVnaW4uaCBcCiAJCQlpbmNsdWRlL3N0b3JhZ2UuaCBpbmNsdWRl
L3Byb3Zpc2lvbi5oIFwKIAkJCWluY2x1ZGUvc2Vzc2lvbi5oIGluY2x1ZGUvaXBhZGRyZXNzLmgg
aW5jbHVkZS9hZ2VudC5oIFwKIAkJCWluY2x1ZGUvaW5vdGlmeS5oIGluY2x1ZGUvcGVlci5oIGlu
Y2x1ZGUvbWFjaGluZS5oIFwKLQkJCWluY2x1ZGUvYWNkLmggaW5jbHVkZS90ZXRoZXJpbmcuaAor
CQkJaW5jbHVkZS9hY2QuaCBpbmNsdWRlL3RldGhlcmluZy5oIGluY2x1ZGUvYWNjb3VudGluZy1p
cHRhYmxlcy5oCiAKIG5vZGlzdF9pbmNsdWRlX0hFQURFUlMgPSBpbmNsdWRlL3ZlcnNpb24uaAog
CkBAIC0xNTIsNyArMTUyLDcgQEAgc3JjX2Nvbm5tYW5kX3dhaXRfb25saW5lX0xEQUREID0gZ2Ri
dXMvbGliZ2RidXMtaW50ZXJuYWwubGEgXAogCQkJQEdMSUJfTElCU0AgQERCVVNfTElCU0AKIAog
aWYgWFRBQkxFUwotc3JjX2Nvbm5tYW5kX1NPVVJDRVMgKz0gc3JjL2lwdGFibGVzLmMgc3JjL2Zp
cmV3YWxsLWlwdGFibGVzLmMKK3NyY19jb25ubWFuZF9TT1VSQ0VTICs9IHNyYy9pcHRhYmxlcy5j
IHNyYy9maXJld2FsbC1pcHRhYmxlcy5jIHNyYy9hY2NvdW50aW5nLWlwdGFibGVzLmMKIHNyY19j
b25ubWFuZF9MREFERCArPSBAWFRBQkxFU19MSUJTQAogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc3Jj
L2Nvbm5tYW4uaCBiL3NyYy9jb25ubWFuLmgKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQppbmRleCAzYmRjMGRjLi4zNTMwOTM3Ci0tLSBhL3NyYy9jb25ubWFuLmgKKysrIGIvc3JjL2Nv
bm5tYW4uaApAQCAtOTUxLDYgKzk1MSwxMSBAQCBpbnQgX19jb25ubWFuX2lwdGFibGVzX2RlbGV0
ZShpbnQgdHlwZSwKIAkJCQljb25zdCBjaGFyICp0YWJsZV9uYW1lLAogCQkJCWNvbnN0IGNoYXIg
KmNoYWluLAogCQkJCWNvbnN0IGNoYXIgKnJ1bGVfc3BlYyk7CitpbnQgX19jb25ubWFuX2lwdGFi
bGVzX2dldF9jaGFpbihpbnQgdHlwZSwKKwkJCQkJCWNvbnN0IGNoYXIgKnRhYmxlX25hbWUsCisJ
CQkJCQljb25zdCBjaGFyICpjaGFpbiwKKwkJCQkJCUdMaXN0ICoqY2hhaW5faGVhZCwKKwkJCQkJ
CUdMaXN0ICoqY2hhaW5fdGFpbCk7CiAKIHR5cGVkZWYgdm9pZCAoKmNvbm5tYW5faXB0YWJsZXNf
aXRlcmF0ZV9jaGFpbnNfY2JfdCkgKGNvbnN0IGNoYXIgKmNoYWluX25hbWUsCiAJCQkJCQkJdm9p
ZCAqdXNlcl9kYXRhKTsKQEAgLTEwMTUsNiArMTAyMCw4IEBAIGludCBfX2Nvbm5tYW5fbmF0X2Vu
YWJsZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICphZGRyZXNzLAogCQkJCXVuc2lnbmVk
IGNoYXIgcHJlZml4bGVuKTsKIHZvaWQgX19jb25ubWFuX25hdF9kaXNhYmxlKGNvbnN0IGNoYXIg
Km5hbWUpOwogCisjaW5jbHVkZSA8Y29ubm1hbi9hY2NvdW50aW5nLWlwdGFibGVzLmg+CisKIHN0
cnVjdCBmaXJld2FsbF9jb250ZXh0OwogCiBzdHJ1Y3QgZmlyZXdhbGxfY29udGV4dCAqX19jb25u
bWFuX2ZpcmV3YWxsX2NyZWF0ZSh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pcHRhYmxlcy5jIGIv
c3JjL2lwdGFibGVzLmMKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA0N2Vh
MWMyLi5mNGUwZTc0Ci0tLSBhL3NyYy9pcHRhYmxlcy5jCisrKyBiL3NyYy9pcHRhYmxlcy5jCkBA
IC0zNjQ2LDYgKzM2NDYsNDggQEAgaW50IF9fY29ubm1hbl9pcHRhYmxlc19kdW1wKGludCB0eXBl
LCBjb25zdCBjaGFyICp0YWJsZV9uYW1lKQogCXJldHVybiAwOwogfQogCitpbnQgX19jb25ubWFu
X2lwdGFibGVzX2dldF9jaGFpbihpbnQgdHlwZSwKKwkJCQkJCQkJY29uc3QgY2hhciAqdGFibGVf
bmFtZSwKKwkJCQkJCQkJY29uc3QgY2hhciAqY2hhaW4sCisJCQkJCQkJCUdMaXN0ICoqY2hhaW5f
aGVhZCwKKwkJCQkJCQkJR0xpc3QgKipjaGFpbl90YWlsKQoreworCUdMaXN0ICpsaXN0LCAqbmV4
dDsKKwlzdHJ1Y3QgY29ubm1hbl9pcHRhYmxlc19lbnRyeSAqZW50cnk7CisJc3RydWN0IGNvbm5t
YW5faXB0YWJsZXMgKnRhYmxlID0gTlVMTDsKKwlpbnQgYnVpbHRpbjsKKworCXRhYmxlID0gaXB0
YWJsZXNfaW5pdCh0eXBlLCB0YWJsZV9uYW1lKTsKKworCWlmICghdGFibGUpCisJCXJldHVybiAt
RUlOVkFMOworCisJREJHKCJ0YWJsZSAlcyBjaGFpbiAlcyIsIHRhYmxlLT5uYW1lLCBjaGFpbik7
CisKKwkvLyBmaW5kaW5nIHRoZSBjaGFpbiBoZWFkCisJKmNoYWluX2hlYWQgPSBmaW5kX2NoYWlu
X2hlYWQodGFibGUsIGNoYWluKTsKKwlpZiAoISpjaGFpbl9oZWFkKQorCQlyZXR1cm4gLUVJTlZB
TDsKKworCS8vIGZpbmRpbmcgdGhlIGNoYWluIHRhaWwKKwkqY2hhaW5fdGFpbCA9IGZpbmRfY2hh
aW5fdGFpbCh0YWJsZSwgY2hhaW4pOworCWlmICghKmNoYWluX3RhaWwpCisJCXJldHVybiAtRUlO
VkFMOworCisJZW50cnkgPSAoKmNoYWluX2hlYWQpLT5kYXRhOworCWJ1aWx0aW4gPSBlbnRyeS0+
YnVpbHRpbjsKKworCS8vaWYgaXQgYnVpbHRpbiBjaGFpbiB0aGVuIGludGVyYXRlIHN0YXJ0cyBm
cm9tIGhlYWQKKwlpZiAoYnVpbHRpbiA+PSAwKQorCQlsaXN0ID0gKmNoYWluX2hlYWQ7CisJZWxz
ZQorCQlsaXN0ID0gKCpjaGFpbl9oZWFkKS0+bmV4dDsKKworCSpjaGFpbl9oZWFkID0gbGlzdDsK
KworCXJldHVybiAwOworfQorCiBpbnQgX19jb25ubWFuX2lwdGFibGVzX25ld19jaGFpbihpbnQg
dHlwZSwKIAkJCQkJY29uc3QgY2hhciAqdGFibGVfbmFtZSwKIAkJCQkJY29uc3QgY2hhciAqY2hh
aW4pCmRpZmYgLS1naXQgYS9zcmMvbWFuYWdlci5jIGIvc3JjL21hbmFnZXIuYwpvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDNiZjhmNGUuLjBlMWJjN2UKLS0tIGEvc3JjL21h
bmFnZXIuYworKysgYi9zcmMvbWFuYWdlci5jCkBAIC0yMjcsOCArMjI3LDEzIEBAIHN0YXRpYyBE
QnVzTWVzc2FnZSAqZ2V0X3RldGhlcmluZ19jbGllbnRzKERCdXNDb25uZWN0aW9uICpjb25uLAog
CWRidXNfbWVzc2FnZV9pdGVyX2luaXRfYXBwZW5kKHJlcGx5LCAmaXRlcik7CiAKIAlkYnVzX21l
c3NhZ2VfaXRlcl9vcGVuX2NvbnRhaW5lcigmaXRlciwgREJVU19UWVBFX0FSUkFZLAotCQkJCURC
VVNfVFlQRV9TVFJJTkdfQVNfU1RSSU5HLCAmYXJyYXkpOwotCisJCQlEQlVTX1NUUlVDVF9CRUdJ
Tl9DSEFSX0FTX1NUUklORworCQkJREJVU19UWVBFX0FSUkFZX0FTX1NUUklORworCQkJCURCVVNf
RElDVF9FTlRSWV9CRUdJTl9DSEFSX0FTX1NUUklORworCQkJCQlEQlVTX1RZUEVfU1RSSU5HX0FT
X1NUUklORworCQkJCQlEQlVTX1RZUEVfVkFSSUFOVF9BU19TVFJJTkcKKwkJCQlEQlVTX0RJQ1Rf
RU5UUllfRU5EX0NIQVJfQVNfU1RSSU5HCisJCQlEQlVTX1NUUlVDVF9FTkRfQ0hBUl9BU19TVFJJ
TkcsICZhcnJheSk7CiAJX19jb25ubWFuX3RldGhlcmluZ19saXN0X2NsaWVudHMoJmFycmF5KTsK
IAogCWRidXNfbWVzc2FnZV9pdGVyX2Nsb3NlX2NvbnRhaW5lcigmaXRlciwgJmFycmF5KTsKZGlm
ZiAtLWdpdCBhL3NyYy90ZXRoZXJpbmcuYyBiL3NyYy90ZXRoZXJpbmcuYwpvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGUyNjg3YjYuLjMxNzZjNTkKLS0tIGEvc3JjL3RldGhl
cmluZy5jCisrKyBiL3NyYy90ZXRoZXJpbmcuYwpAQCAtNTAsNiArNTAsOCBAQAogCiAjZGVmaW5l
IEJSSURHRV9OQU1FICJ0ZXRoZXIiCiAKKyNkZWZpbmUgSVBfTk9UX09GRkVSRUQgKCJub3Qgb2Zm
ZXJlZCIpCisKICNkZWZpbmUgREVGQVVMVF9NVFUJMTUwMAogCiBzdGF0aWMgY2hhciAqcHJpdmF0
ZV9uZXR3b3JrX3ByaW1hcnlfZG5zID0gTlVMTDsKQEAgLTYxLDcgKzYzLDcgQEAgc3RhdGljIHN0
cnVjdCBjb25ubWFuX2lwcG9vbCAqZGhjcF9pcHBvb2wgPSBOVUxMOwogc3RhdGljIERCdXNDb25u
ZWN0aW9uICpjb25uZWN0aW9uOwogc3RhdGljIEdIYXNoVGFibGUgKnBuX2hhc2g7CiAKLXN0YXRp
YyBHSGFzaFRhYmxlICpjbGllbnRzX3RhYmxlOworc3RhdGljIEdIYXNoVGFibGUgKmFkZGVkX2Ns
aWVudHNfdGFibGUsICpyZW1vdmVkX2NsaWVudHNfdGFibGU7CiAKIHN0cnVjdCBfY2xpZW50c19u
b3RpZnkgewogCWludCBpZDsKQEAgLTEzOSw2ICsxNDEsNjQgQEAgc3RhdGljIHZvaWQgZGhjcF9z
ZXJ2ZXJfZXJyb3IoR0RIQ1BTZXJ2ZXJFcnJvciBlcnJvcikKIAl9CiB9CiAKK3N0cnVjdCBpcF9h
Y2NvdW50aW5nX2luZm8gKnRldGhlcl9jbGllbnRfY3JlYXRlKHZvaWQpCit7CisJc3RydWN0IGlw
X2FjY291bnRpbmdfaW5mbyAqdGV0aGVyX2NsaWVudDsKKworCXRldGhlcl9jbGllbnQgPSBnX3Ry
eV9uZXcwKHN0cnVjdCBpcF9hY2NvdW50aW5nX2luZm8sIDEpOworCWlmICghdGV0aGVyX2NsaWVu
dCkKKwkJcmV0dXJuIE5VTEw7CisKKwl0ZXRoZXJfY2xpZW50LT5pcHY0X2FkZHJlc3MgPSBnX3N0
cmR1cChJUF9OT1RfT0ZGRVJFRCk7CisJdGV0aGVyX2NsaWVudC0+aW5ncmVzcy5iY250ID0gMDsK
Kwl0ZXRoZXJfY2xpZW50LT5pbmdyZXNzLmJjbnQgPSAwOworCXRldGhlcl9jbGllbnQtPmVncmVz
cy5iY250ID0gMDsKKwl0ZXRoZXJfY2xpZW50LT5lZ3Jlc3MuYmNudCA9IDA7CisJcmV0dXJuIHRl
dGhlcl9jbGllbnQ7Cit9CisKK3N0YXRpYyB2b2lkIGxlYXNlX2FkZGVkKHVuc2lnbmVkIGNoYXIg
Km1hYywgdWludDMyX3QgaXB2NCkKK3sKKwljaGFyIG1hY19hZGRyWzE4XTsKKwlzdHJ1Y3QgaW5f
YWRkciBhZGRyOworCXN0cnVjdCBpcF9hY2NvdW50aW5nX2luZm8gKnRldGhfY2xpID0gTlVMTDsK
KworCXNucHJpbnRmKG1hY19hZGRyLCAxOCwKKwkJCSIlMDJ4OiUwMng6JTAyeDolMDJ4OiUwMng6
JTAyeCIsCisJCQltYWNbMF0sIG1hY1sxXSwgbWFjWzJdLAorCQkJbWFjWzNdLCBtYWNbNF0sIG1h
Y1s1XSk7CisKKwlhZGRyLnNfYWRkciA9IGlwdjQ7CisJY2hhciAqaXBfYWRkciA9IGluZXRfbnRv
YShhZGRyKTsKKworCURCRygiaXB2NCBhZGRyZXNzKCVzKSBsZWFzZWQgZm9yIGNsaWVudCBtYWMo
JXMpIiwgaXBfYWRkciwgbWFjX2FkZHIpOworCisJaWYgKHRydWUgPT0gZ19oYXNoX3RhYmxlX2xv
b2t1cF9leHRlbmRlZChhZGRlZF9jbGllbnRzX3RhYmxlLAorCQkJCQkJCQkJCQltYWNfYWRkciwK
KwkJCQkJCQkJCQkJTlVMTCwgJnRldGhfY2xpKSkgeworCQlpZiAoIXN0cmNtcCh0ZXRoX2NsaS0+
aXB2NF9hZGRyZXNzLCBnX3N0cmR1cChJUF9OT1RfT0ZGRVJFRCkpKSB7CisJCQkvLyBpcHY0IGFk
ZHJlc3MgaXMgbm90IG9mZmVyZWQsIGl0IG5ldyBjbGllbnQKKwkJCURCRygibmV3IGlwIGFkZHJl
c3MgaXMgb2ZmZXJlZCB0byBuZXcgY2xpZW50Iik7CisJCQlnX2ZyZWUodGV0aF9jbGktPmlwdjRf
YWRkcmVzcyk7CisJCQl0ZXRoX2NsaS0+aXB2NF9hZGRyZXNzID0gZ19zdHJkdXAoaXBfYWRkcik7
CisJCQlfX2Nvbm5tYW5fYWRkX2lwX2FjY19ydWxlcyh0ZXRoX2NsaS0+aXB2NF9hZGRyZXNzKTsK
KwkJfSBlbHNlIGlmIChzdHJjbXAodGV0aF9jbGktPmlwdjRfYWRkcmVzcywgaXBfYWRkcikpIHsK
KwkJCS8vIG5ldyBpcHY0IGFkZHJlc3MgaXMgYXNzaWduZWQsIG1heSBiZSBsZWFzZSBleHBpcmVk
CisJCQlEQkcoIm5ldyBpcCBhZGRyZXNzIGlzIG9mZmVyZWQgdG8gZXhpc3RpbmcgY2xpZW50LCBt
YXkgYmUgbGVhc2UgZXhwaXJlZCIpOworCQkJX19jb25ubWFuX2RlbGV0ZV9pcF9hY2NfcnVsZXMo
dGV0aF9jbGktPmlwdjRfYWRkcmVzcyk7CisJCQlnX2ZyZWUodGV0aF9jbGktPmlwdjRfYWRkcmVz
cyk7CisJCQl0ZXRoX2NsaS0+aXB2NF9hZGRyZXNzID0gZ19zdHJkdXAoaXBfYWRkcik7CisJCQlf
X2Nvbm5tYW5fYWRkX2lwX2FjY19ydWxlcyh0ZXRoX2NsaS0+aXB2NF9hZGRyZXNzKTsKKwkJfSBl
bHNlIHsKKwkJCS8vIHNvbWV0aW1lIGxlYXNlX2FkZGVkIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1l
IGFuZCBpcHY0IGFkZHJlc3MgaXMgc2FtZQorCQkJREJHKCJhbHJlYWR5IGlwIGFkZHJlc3MgaXMg
b2ZmZXJlZCB0byB0aGlzIGNsaWVudCIpOworCQl9CisJfSBlbHNlIHsKKwkJLy8gcG9zc2libHkg
dGhpcyBzaXR1YXRpb24gd2lsbCBub3QgaGFwcGVuCisJCURCRygiY2xpZW50IGlzIG5vdCBhdXRo
b3Jpc2VkL3JlZ2lzdGVyZWQsIGZhdGFsIGVycm9yISIpOworCX0KK30KKwogc3RhdGljIEdESENQ
U2VydmVyICpkaGNwX3NlcnZlcl9zdGFydChjb25zdCBjaGFyICpicmlkZ2UsCiAJCQkJY29uc3Qg
Y2hhciAqcm91dGVyLCBjb25zdCBjaGFyICpzdWJuZXQsCiAJCQkJY29uc3QgY2hhciAqc3RhcnRf
aXAsIGNvbnN0IGNoYXIgKmVuZF9pcCwKQEAgLTE2Nyw2ICsyMjcsNyBAQCBzdGF0aWMgR0RIQ1BT
ZXJ2ZXIgKmRoY3Bfc2VydmVyX3N0YXJ0KGNvbnN0IGNoYXIgKmJyaWRnZSwKIAlnX2RoY3Bfc2Vy
dmVyX3NldF9vcHRpb24oZGhjcF9zZXJ2ZXIsIEdfREhDUF9ST1VURVIsIHJvdXRlcik7CiAJZ19k
aGNwX3NlcnZlcl9zZXRfb3B0aW9uKGRoY3Bfc2VydmVyLCBHX0RIQ1BfRE5TX1NFUlZFUiwgZG5z
KTsKIAlnX2RoY3Bfc2VydmVyX3NldF9pcF9yYW5nZShkaGNwX3NlcnZlciwgc3RhcnRfaXAsIGVu
ZF9pcCk7CisJZ19kaGNwX3NlcnZlcl9zZXRfbGVhc2VfYWRkZWRfY2IoZGhjcF9zZXJ2ZXIsIGxl
YXNlX2FkZGVkKTsKIAogCWdfZGhjcF9zZXJ2ZXJfc3RhcnQoZGhjcF9zZXJ2ZXIpOwogCkBAIC0x
OTUsOSArMjU2LDQyIEBAIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfY2xpZW50KGdwb2ludGVyIGtl
eSwKIAlfX2Nvbm5tYW5fdGV0aGVyaW5nX2NsaWVudF91bnJlZ2lzdGVyKGFkZHIpOwogfQogCitz
dGF0aWMgdm9pZCB0ZXRoZXJfY2xpZW50X2NvcHkoZ3BvaW50ZXIga2V5LAorCQkJCQlncG9pbnRl
ciB2YWx1ZSwgZ3BvaW50ZXIgdXNlcl9kYXRhKQoreworCUdIYXNoVGFibGUgKnRldGhlcl9jbGll
bnRfdGFibGUgPSB1c2VyX2RhdGE7CisJc3RydWN0IGlwX2FjY291bnRpbmdfaW5mbyAqY29weV90
ZXRoX2NsaWVudDsKKwlzdHJ1Y3QgaXBfYWNjb3VudGluZ19pbmZvICp0ZXRoZXJfY2xpZW50ID0g
dmFsdWU7CisKKwljb3B5X3RldGhfY2xpZW50ID0gdGV0aGVyX2NsaWVudF9jcmVhdGUoKTsKKwlp
ZiAodGV0aGVyX2NsaWVudCkgeworCQljb3B5X3RldGhfY2xpZW50LT5pcHY0X2FkZHJlc3MgPSBn
X3N0cmR1cCh0ZXRoZXJfY2xpZW50LT5pcHY0X2FkZHJlc3MpOworCQlnX2hhc2hfdGFibGVfaW5z
ZXJ0KHRldGhlcl9jbGllbnRfdGFibGUsIGdfc3RyZHVwKGtleSksIGNvcHlfdGV0aF9jbGllbnQp
OworCX0gZWxzZSB7CisJCURCRygiY291bGQgbm90IGNyZWF0ZSB0ZXRoZXIgY2xpZW50IGVudHJ5
Iik7CisJfQorfQorCitzdGF0aWMgdm9pZCB0ZXRoZXJfY2xpZW50X2Rlc3Ryb3koZ3BvaW50ZXIg
ZGF0YSkKK3sKKwlzdHJ1Y3QgaXBfYWNjb3VudGluZ19pbmZvICp0ZXRoZXJfY2xpZW50ID0gZGF0
YTsKKworCWdfZnJlZSh0ZXRoZXJfY2xpZW50LT5pcHY0X2FkZHJlc3MpOworCWdfZnJlZSh0ZXRo
ZXJfY2xpZW50KTsKK30KKwogc3RhdGljIHZvaWQgdW5yZWdpc3Rlcl9hbGxfY2xpZW50cyh2b2lk
KQogewotCWdfaGFzaF90YWJsZV9mb3JlYWNoKGNsaWVudHNfdGFibGUsIHVucmVnaXN0ZXJfY2xp
ZW50LCBOVUxMKTsKKwlHSGFzaFRhYmxlICp0ZXRoZXJfY2xpZW50X3RhYmxlOworCisJdGV0aGVy
X2NsaWVudF90YWJsZSA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLAorCQkJCQkJ
CQkJCQkJZ19zdHJfZXF1YWwsCisJCQkJCQkJCQkJCQlnX2ZyZWUsCisJCQkJCQkJCQkJCQl0ZXRo
ZXJfY2xpZW50X2Rlc3Ryb3kpOworCWdfaGFzaF90YWJsZV9mb3JlYWNoKGFkZGVkX2NsaWVudHNf
dGFibGUsIHRldGhlcl9jbGllbnRfY29weSwKKwkJCQkJCQkJCQkJICB0ZXRoZXJfY2xpZW50X3Rh
YmxlKTsKKwlnX2hhc2hfdGFibGVfZm9yZWFjaCh0ZXRoZXJfY2xpZW50X3RhYmxlLCB1bnJlZ2lz
dGVyX2NsaWVudCwgTlVMTCk7CisJZ19oYXNoX3RhYmxlX2Rlc3Ryb3kodGV0aGVyX2NsaWVudF90
YWJsZSk7CiB9CiAKIGludCBfX2Nvbm5tYW5fdGV0aGVyaW5nX3NldF9lbmFibGVkKHZvaWQpCkBA
IC0zMDYsNiArNDAwLDggQEAgaW50IF9fY29ubm1hbl90ZXRoZXJpbmdfc2V0X2VuYWJsZWQodm9p
ZCkKIAkJREJHKCJDYW5ub3Qgc2V0dXAgSVB2NiBwcmVmaXggZGVsZWdhdGlvbiAlZC8lcyIsIGVy
ciwKIAkJCXN0cmVycm9yKC1lcnIpKTsKIAorCV9fY29ubm1hbl9jcmVhdGVfaXBfYWNjX2NoYWlu
KEJSSURHRV9OQU1FKTsKKwogCURCRygidGV0aGVyaW5nIHN0YXJ0ZWQiKTsKIAogCXJldHVybiAw
OwpAQCAtMzQ1LDkgKzQ0MSw2MCBAQCB2b2lkIF9fY29ubm1hbl90ZXRoZXJpbmdfc2V0X2Rpc2Fi
bGVkKHZvaWQpCiAJZ19mcmVlKHByaXZhdGVfbmV0d29ya19zZWNvbmRhcnlfZG5zKTsKIAlwcml2
YXRlX25ldHdvcmtfc2Vjb25kYXJ5X2RucyA9IE5VTEw7CiAKKwlfX2Nvbm5tYW5fZGVzdHJveV9p
cF9hY2NfY2hhaW4oQlJJREdFX05BTUUpOworCiAJREJHKCJ0ZXRoZXJpbmcgc3RvcHBlZCIpOwog
fQogCitzdGF0aWMgdm9pZCBhcHBlbmRfZGljdF9wcm9wZXJ0aWVzKERCdXNNZXNzYWdlSXRlciAq
ZGljdCwKKwkJCQkJCQkJICAgc3RydWN0IGlwX2FjY291bnRpbmdfaW5mbyAqdGV0aGVyX2NsaWVu
dCwKKwkJCQkJCQkJICAgY2hhciAqYWRkcikKK3sKKwlzdHJ1Y3QgaXBfYWNjb3VudGluZ19pbmZv
ICpyZW1vdmVkX3RldGhlcl9jbGllbnQgPSBOVUxMOworCisJY29ubm1hbl9kYnVzX2RpY3RfYXBw
ZW5kX2Jhc2ljKGRpY3QsICJtYWMiLCBEQlVTX1RZUEVfU1RSSU5HLCAmYWRkcik7CisKKwljb25u
bWFuX2RidXNfZGljdF9hcHBlbmRfYmFzaWMoZGljdCwgImlwdjQiLCBEQlVTX1RZUEVfU1RSSU5H
LAorCQkJCQkJCQkJCSZ0ZXRoZXJfY2xpZW50LT5pcHY0X2FkZHJlc3MpOworCisJX19jb25ubWFu
X2dldF9pcF9hY2NfaW5mbyh0ZXRoZXJfY2xpZW50KTsKKworCWNvbm5tYW5fZGJ1c19kaWN0X2Fw
cGVuZF9iYXNpYyhkaWN0LCAidHgtYnl0ZXMiLCBEQlVTX1RZUEVfVUlOVDY0LAorCQkJCQkJCQkJ
CSZ0ZXRoZXJfY2xpZW50LT5lZ3Jlc3MuYmNudCk7CisKKwljb25ubWFuX2RidXNfZGljdF9hcHBl
bmRfYmFzaWMoZGljdCwgInJ4LWJ5dGVzIiwgREJVU19UWVBFX1VJTlQ2NCwKKwkJCQkJCQkJCQkm
dGV0aGVyX2NsaWVudC0+aW5ncmVzcy5iY250KTsKKworCXJlbW92ZWRfdGV0aGVyX2NsaWVudCA9
IGdfaGFzaF90YWJsZV9sb29rdXAocmVtb3ZlZF9jbGllbnRzX3RhYmxlLCBhZGRyKTsKKwlpZiAo
cmVtb3ZlZF90ZXRoZXJfY2xpZW50KSB7CisJCWNvbm5tYW5fZGJ1c19kaWN0X2FwcGVuZF9iYXNp
YyhkaWN0LCAicHJldmlvdXMgdHgtYnl0ZXMiLAorCQkJCQkJCQkJREJVU19UWVBFX0lOVDMyLAor
CQkJCQkJCQkJJnJlbW92ZWRfdGV0aGVyX2NsaWVudC0+ZWdyZXNzLmJjbnQpOworCQljb25ubWFu
X2RidXNfZGljdF9hcHBlbmRfYmFzaWMoZGljdCwgInByZXZpb3VzIHJ4LWJ5dGVzIiwKKwkJCQkJ
CQkJCURCVVNfVFlQRV9JTlQzMiwKKwkJCQkJCQkJCSZyZW1vdmVkX3RldGhlcl9jbGllbnQtPmlu
Z3Jlc3MuYmNudCk7CisJfSBlbHNlIHsKKwkJREJHKCJubyBoaXN0b3J5IGZvdW5kIGZvciB0aGlz
IGNsaWVudCIpOworCX0KK30KKworc3RhdGljIHZvaWQgYXBwZW5kX3N0cnVjdF9pcF9hY2NfaW5m
byhjaGFyICphZGRyLAorCQkJCQkJCQkJc3RydWN0IGlwX2FjY291bnRpbmdfaW5mbyAqdGV0aGVy
X2NsaWVudCwKKwkJCQkJCQkJCURCdXNNZXNzYWdlSXRlciAqaXRlcikKK3sKKwlEQnVzTWVzc2Fn
ZUl0ZXIgZW50cnksIGRpY3Q7CisKKwlkYnVzX21lc3NhZ2VfaXRlcl9vcGVuX2NvbnRhaW5lcihp
dGVyLCBEQlVTX1RZUEVfU1RSVUNULCBOVUxMLCAmZW50cnkpOworCisJY29ubm1hbl9kYnVzX2Rp
Y3Rfb3BlbigmZW50cnksICZkaWN0KTsKKworCWFwcGVuZF9kaWN0X3Byb3BlcnRpZXMoJmRpY3Qs
IHRldGhlcl9jbGllbnQsIGFkZHIpOworCisJY29ubm1hbl9kYnVzX2RpY3RfY2xvc2UoJmVudHJ5
LCAmZGljdCk7CisKKwlkYnVzX21lc3NhZ2VfaXRlcl9jbG9zZV9jb250YWluZXIoaXRlciwgJmVu
dHJ5KTsKK30KKwogc3RhdGljIHZvaWQgYXBwZW5kX2NsaWVudChncG9pbnRlciBrZXksIGdwb2lu
dGVyIHZhbHVlLAogCQkJCQkJZ3BvaW50ZXIgdXNlcl9kYXRhKQogewpAQCAtMzYwLDcgKzUwNywx
MSBAQCBzdGF0aWMgdm9pZCBhcHBlbmRfY2xpZW50KGdwb2ludGVyIGtleSwgZ3BvaW50ZXIgdmFs
dWUsCiAKIHZvaWQgX19jb25ubWFuX3RldGhlcmluZ19saXN0X2NsaWVudHMoREJ1c01lc3NhZ2VJ
dGVyICphcnJheSkKIHsKLQlnX2hhc2hfdGFibGVfZm9yZWFjaChjbGllbnRzX3RhYmxlLCBhcHBl
bmRfY2xpZW50LCBhcnJheSk7CisJREJHKCJmb3VuZCAlZCBjbGllbnRzIGluICBoYXNoIHRhYmxl
IiwKKwkJCQkJZ19oYXNoX3RhYmxlX3NpemUoYWRkZWRfY2xpZW50c190YWJsZSkpOworCisJZ19o
YXNoX3RhYmxlX2ZvcmVhY2goYWRkZWRfY2xpZW50c190YWJsZSwgYXBwZW5kX3N0cnVjdF9pcF9h
Y2NfaW5mbywKKwkJCQkJCQkJCQkJCWFycmF5KTsKIH0KIAogc3RhdGljIHZvaWQgc2V0dXBfdHVu
X2ludGVyZmFjZSh1bnNpZ25lZCBpbnQgZmxhZ3MsIHVuc2lnbmVkIGNoYW5nZSwKQEAgLTQ5NCw3
ICs2NDUsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4gY2xpZW50X3NlbmRfY2hhbmdlZChncG9pbnRlciBk
YXRhKQogCWRidXNfbWVzc2FnZV9pdGVyX29wZW5fY29udGFpbmVyKCZpdGVyLCBEQlVTX1RZUEVf
QVJSQVksCiAJCQkJREJVU19UWVBFX1NUUklOR19BU19TVFJJTkcsICZhcnJheSk7CiAKLQlnX2hh
c2hfdGFibGVfZm9yZWFjaChjbGllbnRzX3RhYmxlLCBhcHBlbmRfY2xpZW50LCAmYXJyYXkpOwor
CWdfaGFzaF90YWJsZV9mb3JlYWNoKGFkZGVkX2NsaWVudHNfdGFibGUsIGFwcGVuZF9jbGllbnQs
ICZhcnJheSk7CiAKIAlkYnVzX21lc3NhZ2VfaXRlcl9jbG9zZV9jb250YWluZXIoJml0ZXIsICZh
cnJheSk7CiAKQEAgLTYzMSwxNCArNzgyLDY4IEBAIGludCBfX2Nvbm5tYW5fcHJpdmF0ZV9uZXR3
b3JrX3JlbGVhc2UoY29uc3QgY2hhciAqcGF0aCkKIAogdm9pZCBfX2Nvbm5tYW5fdGV0aGVyaW5n
X2NsaWVudF9yZWdpc3Rlcihjb25zdCBjaGFyICphZGRyKQogewotCWdfaGFzaF90YWJsZV9pbnNl
cnQoY2xpZW50c190YWJsZSwgZ19zdHJkdXAoYWRkciksIE5VTEwpOworCXN0cnVjdCBpcF9hY2Nv
dW50aW5nX2luZm8gKnRldGhlcl9jbGllbnQ7CisKKwlEQkcoImFkZGluZyAlcyBtYWMgYWRkcmVz
cyBpbiBoYXNoIHRhYmxlIiwgYWRkcik7CisKKwl0ZXRoZXJfY2xpZW50ID0gdGV0aGVyX2NsaWVu
dF9jcmVhdGUoKTsKKworCWlmICh0ZXRoZXJfY2xpZW50KQorCQlnX2hhc2hfdGFibGVfaW5zZXJ0
KGFkZGVkX2NsaWVudHNfdGFibGUsIGdfc3RyZHVwKGFkZHIpLCB0ZXRoZXJfY2xpZW50KTsKKwll
bHNlCisJCURCRygiY291bGQgbm90IGNyZWF0ZSB0ZXRoZXIgY2xpZW50IGVudHJ5Iik7CisKKwlE
QkcoImhhc2ggdGFibGUgc2l6ZSAlZCIsIGdfaGFzaF90YWJsZV9zaXplKGFkZGVkX2NsaWVudHNf
dGFibGUpKTsKKwogCWNsaWVudF9hZGRlZChhZGRyKTsKIH0KIAogdm9pZCBfX2Nvbm5tYW5fdGV0
aGVyaW5nX2NsaWVudF91bnJlZ2lzdGVyKGNvbnN0IGNoYXIgKmFkZHIpCiB7Ci0JY2xpZW50X3Jl
bW92ZWQoYWRkcik7Ci0JZ19oYXNoX3RhYmxlX3JlbW92ZShjbGllbnRzX3RhYmxlLCBhZGRyKTsK
KwlzdHJ1Y3QgaXBfYWNjb3VudGluZ19pbmZvICpleGlzdGluZ190ZXRoZXJfY2xpZW50OworCXN0
cnVjdCBpcF9hY2NvdW50aW5nX2luZm8gKm9sZF90ZXRoZXJfY2xpZW50OworCXN0cnVjdCBpcF9h
Y2NvdW50aW5nX2luZm8gKnRldGhlcl9jbGllbnQ7CisKKwlEQkcoInJlbW92aW5nICVzIG1hYyBh
ZGRyZXNzIGZyb20gaGFzaCB0YWJsZSIsIGFkZHIpOworCisJZXhpc3RpbmdfdGV0aGVyX2NsaWVu
dCA9IGdfaGFzaF90YWJsZV9sb29rdXAoYWRkZWRfY2xpZW50c190YWJsZSwgYWRkcik7CisJaWYg
KGV4aXN0aW5nX3RldGhlcl9jbGllbnQpIHsKKwkJaWYgKHN0cmNtcChleGlzdGluZ190ZXRoZXJf
Y2xpZW50LT5pcHY0X2FkZHJlc3MsCisJCQkJCQkJCQlnX3N0cmR1cChJUF9OT1RfT0ZGRVJFRCkp
KSB7CisJCQlfX2Nvbm5tYW5fZ2V0X2lwX2FjY19pbmZvKGV4aXN0aW5nX3RldGhlcl9jbGllbnQp
OworCQkJX19jb25ubWFuX2RlbGV0ZV9pcF9hY2NfcnVsZXMoZXhpc3RpbmdfdGV0aGVyX2NsaWVu
dC0+aXB2NF9hZGRyZXNzKTsKKwkJCW9sZF90ZXRoZXJfY2xpZW50ID0gZ19oYXNoX3RhYmxlX2xv
b2t1cChyZW1vdmVkX2NsaWVudHNfdGFibGUsIGFkZHIpOworCQkJaWYgKG9sZF90ZXRoZXJfY2xp
ZW50KSB7CisJCQkJREJHKCJyZXBsYWNpbmcgZXhpc3RpbmcgY2xpZW50IGluIGhhc2ggdGFibGUi
KTsKKwkJCQl0ZXRoZXJfY2xpZW50ID0gdGV0aGVyX2NsaWVudF9jcmVhdGUoKTsKKwkJCQlpZiAo
dGV0aGVyX2NsaWVudCkgeworCQkJCQl0ZXRoZXJfY2xpZW50LT5pbmdyZXNzLmJjbnQgPSBvbGRf
dGV0aGVyX2NsaWVudC0+aW5ncmVzcy5iY250CisJCQkJCQkJCQkJCSsgZXhpc3RpbmdfdGV0aGVy
X2NsaWVudC0+aW5ncmVzcy5iY250OworCQkJCQl0ZXRoZXJfY2xpZW50LT5lZ3Jlc3MuYmNudCA9
IG9sZF90ZXRoZXJfY2xpZW50LT5lZ3Jlc3MuYmNudAorCQkJCQkJCQkJCQkrIGV4aXN0aW5nX3Rl
dGhlcl9jbGllbnQtPmVncmVzcy5iY250OworCQkJCQlnX2hhc2hfdGFibGVfcmVwbGFjZShyZW1v
dmVkX2NsaWVudHNfdGFibGUsCisJCQkJCQkJCQkJCWdfc3RyZHVwKGFkZHIpLAorCQkJCQkJCQkJ
CQl0ZXRoZXJfY2xpZW50KTsKKwkJCQl9IGVsc2UKKwkJCQkJREJHKCJjb3VsZCBub3QgY3JlYXRl
IHRldGhlciBjbGllbnQgZW50cnkiKTsKKwkJCX0gZWxzZSB7CisJCQkJREJHKCJhZGRpbmcgY2xp
ZW50IGluIGhhc2ggdGFibGUiKTsKKwkJCQl0ZXRoZXJfY2xpZW50ID0gdGV0aGVyX2NsaWVudF9j
cmVhdGUoKTsKKwkJCQlpZiAodGV0aGVyX2NsaWVudCkgeworCQkJCQl0ZXRoZXJfY2xpZW50LT5p
bmdyZXNzLmJjbnQgPSBleGlzdGluZ190ZXRoZXJfY2xpZW50LT5pbmdyZXNzLmJjbnQ7CisJCQkJ
CXRldGhlcl9jbGllbnQtPmVncmVzcy5iY250ID0gZXhpc3RpbmdfdGV0aGVyX2NsaWVudC0+ZWdy
ZXNzLmJjbnQ7CisJCQkJCWdfaGFzaF90YWJsZV9pbnNlcnQocmVtb3ZlZF9jbGllbnRzX3RhYmxl
LAorCQkJCQkJCQkJCQlnX3N0cmR1cChhZGRyKSwKKwkJCQkJCQkJCQkJdGV0aGVyX2NsaWVudCk7
CisJCQkJfSBlbHNlCisJCQkJCURCRygiY291bGQgbm90IGNyZWF0ZSB0ZXRoZXIgY2xpZW50IGVu
dHJ5Iik7CisJCQl9CisJCX0gZWxzZQorCQkJREJHKCJpcCBhZGRyZXNzIG5vdCBvZmZlcmVkIGZv
ciAlcyAiLCBhZGRyKTsKKwkJZ19oYXNoX3RhYmxlX3JlbW92ZShhZGRlZF9jbGllbnRzX3RhYmxl
LCBhZGRyKTsKKwkJY2xpZW50X3JlbW92ZWQoYWRkcik7CisJfSBlbHNlCisJCURCRygiY291bGQg
bm90IHJlbW92ZSBjbGllbnQgZnJvbSBoYXNoIHRhYmxlIik7CiB9CiAKIGludCBfX2Nvbm5tYW5f
dGV0aGVyaW5nX2luaXQodm9pZCkKQEAgLTY1NCw4ICs4NTksMTEgQEAgaW50IF9fY29ubm1hbl90
ZXRoZXJpbmdfaW5pdCh2b2lkKQogCXBuX2hhc2ggPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19z
dHJfaGFzaCwgZ19zdHJfZXF1YWwsCiAJCQkJCQlOVUxMLCByZW1vdmVfcHJpdmF0ZV9uZXR3b3Jr
KTsKIAotCWNsaWVudHNfdGFibGUgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwg
Z19zdHJfZXF1YWwsCi0JCQkJCQkJZ19mcmVlLCBOVUxMKTsKKwlhZGRlZF9jbGllbnRzX3RhYmxl
ID0gZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLAorCQkJCQkJ
CWdfZnJlZSwgdGV0aGVyX2NsaWVudF9kZXN0cm95KTsKKworCXJlbW92ZWRfY2xpZW50c190YWJs
ZSA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwKKwkJCQkJ
CQlnX2ZyZWUsIHRldGhlcl9jbGllbnRfZGVzdHJveSk7CiAKIAljbGllbnRzX25vdGlmeSA9IGdf
bmV3MChzdHJ1Y3QgX2NsaWVudHNfbm90aWZ5LCAxKTsKIAljbGllbnRzX25vdGlmeS0+cmVtb3Zl
ID0gZ19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLApAQCAtNjg1
LDggKzg5MywxMSBAQCB2b2lkIF9fY29ubm1hbl90ZXRoZXJpbmdfY2xlYW51cCh2b2lkKQogCWdf
ZnJlZShjbGllbnRzX25vdGlmeSk7CiAJY2xpZW50c19ub3RpZnkgPSBOVUxMOwogCi0JZ19oYXNo
X3RhYmxlX2Rlc3Ryb3koY2xpZW50c190YWJsZSk7Ci0JY2xpZW50c190YWJsZSA9IE5VTEw7CisJ
Z19oYXNoX3RhYmxlX2Rlc3Ryb3koYWRkZWRfY2xpZW50c190YWJsZSk7CisJYWRkZWRfY2xpZW50
c190YWJsZSA9IE5VTEw7CisKKwlnX2hhc2hfdGFibGVfZGVzdHJveShyZW1vdmVkX2NsaWVudHNf
dGFibGUpOworCXJlbW92ZWRfY2xpZW50c190YWJsZSA9IE5VTEw7CiAKIAlkYnVzX2Nvbm5lY3Rp
b25fdW5yZWYoY29ubmVjdGlvbik7CiB9Cg==
--000000000000df1c5a05a679f506--
------------------------------
Subject: Digest Footer
_______________________________________________
connman mailing list -- [email protected]
To unsubscribe send an email to [email protected]
------------------------------
End of connman Digest, Vol 55, Issue 13
***************************************