mutt/2144: Please always use ascii_strcasecmp to compare ASCII parameter strings
>Number: 2144
>Notify-List:
>Category: mutt
>Synopsis: Please always use ascii_strcasecmp to compare ASCII parameter
>strings
>Confidential: no
>Severity: normal
>Priority: medium
>Responsible: mutt-dev
>State: open
>Keywords:
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Dec 01 20:47:37 +0100 2005
>Originator: Recai Oktas <roktas@xxxxxxxxxx>
>Release:
>Organization:
>Environment:
Debian GNU/Linux (unstable)
>Description:
The latest Mutt package (version 1.5.11) doesn't work under the Turkish locales
(tr_TR, tr_TR.UTF-8). Tracking down the bug, I've found that the changes
introduced in the "attachment counting for index display" patch have caused the
problem. This is a well-known bug pattern occured for Turkish locales. Thomas
Roessler has already warned the developers for the problem (which is exactly
the case for this particular bug). Excerpt from the Changelog:
2002/03/26 22:25:48 Thomas Roessler <roessler@xxxxxxxxxxxxxxxxxx>
[...]
* smime.c: Please use ascii_strcasecmp() if you want to compare ASCII
parameter strings. mutt_strcasecmp() depends on the locale, and detects "i"
and "I" as _different_ in Turkish locales.
>How-To-Repeat:
Setup the locale as tr_TR (or tr_TR.UTF-8) and invoke Mutt with a configuration
file which has an 'attachments' setting, i.e. "attachments +I text/plain".
This will generate a parse error.
>Fix:
Attached is a trivial patch which introduces two new functions:
mutt_ascii_strcasecmp and mutt_ascii_strncasecmp , and applies the
's/mutt_strcasecmp/mutt_ascii_strcasecmp' and
's/mutt_strncasecmp/mutt_ascii_strncasecmp' substitutions for all _obvious_
cases. That is, the patch does not only deal with this reported bug, it also
covers the other obvious cases.
P.S. Unfortunately, I couldn't test the patch, but I'll test and inform you
later.
>Add-To-Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-patch; name="mutt_ascii_strcase.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="mutt_ascii_strcase.patch"
ZGlmZiAtcnUgbXV0dC5vcmlnL2NvbG9yLmMgbXV0dC9jb2xvci5jCi0tLSBtdXR0Lm9yaWcvY29s
b3IuYwkyMDA1LTA5LTE3IDIzOjQ2OjEwLjAwMDAwMDAwMCArMDMwMAorKysgbXV0dC9jb2xvci5j
CTIwMDUtMTItMDEgMjE6MDY6MDIuMDAwMDAwMDAwICswMjAwCkBAIC0zMDksMTQgKzMwOSwxNCBA
QAogewogICBjaGFyICplcHRyOwogCi0gIGlmIChtdXR0X3N0cm5jYXNlY21wIChzLCAiYnJpZ2h0
IiwgNikgPT0gMCkKKyAgaWYgKG11dHRfYXNjaWlfc3RybmNhc2VjbXAgKHMsICJicmlnaHQiLCA2
KSA9PSAwKQogICB7CiAgICAgKmF0dHIgfD0gYnJpdGU7CiAgICAgcyArPSA2OwogICB9CiAKICAg
LyogYWxsb3cgYWxpYXNlcyBmb3IgeHRlcm0gY29sb3IgcmVzb3VyY2VzICovCi0gIGlmIChtdXR0
X3N0cm5jYXNlY21wIChzLCAiY29sb3IiLCA1KSA9PSAwKQorICBpZiAobXV0dF9hc2NpaV9zdHJu
Y2FzZWNtcCAocywgImNvbG9yIiwgNSkgPT0gMCkKICAgewogICAgIHMgKz0gNTsKICAgICAqY29s
ID0gc3RydG9sIChzLCAmZXB0ciwgMTApOwpkaWZmIC1ydSBtdXR0Lm9yaWcvY3J5cHQuYyBtdXR0
L2NyeXB0LmMKLS0tIG11dHQub3JpZy9jcnlwdC5jCTIwMDUtMTAtMjEgMDc6MzU6MzcuMDAwMDAw
MDAwICswMzAwCisrKyBtdXR0L2NyeXB0LmMJMjAwNS0xMi0wMSAyMTowNzoxOS4wMDAwMDAwMDAg
KzAyMDAKQEAgLTU1Miw3ICs1NTIsNyBAQAogCWNvbnZlcnRfdG9fN2JpdCAoYS0+cGFydHMpOwog
ICAgIH0gCiAgICAgZWxzZSBpZiAoYS0+dHlwZSA9PSBUWVBFTUVTU0FHRSAmJgotCSAgICAgbXV0
dF9zdHJjYXNlY21wKGEtPnN1YnR5cGUsICJkZWxpdmVyeS1zdGF0dXMiKSkKKwkgICAgIG11dHRf
YXNjaWlfc3RyY2FzZWNtcChhLT5zdWJ0eXBlLCAiZGVsaXZlcnktc3RhdHVzIikpCiAgICAgewog
ICAgICAgaWYoYS0+ZW5jb2RpbmcgIT0gRU5DN0JJVCkKIAltdXR0X21lc3NhZ2VfdG9fN2JpdCAo
YSwgTlVMTCk7CkBAIC04MDgsMTUgKzgwOCwxNSBAQAogICAKICAgaWYgKChXaXRoQ3J5cHRvICYg
QVBQTElDQVRJT05fUEdQKQogICAgICAgJiYgcHJvdG9jb2xfbWFqb3IgPT0gVFlQRUFQUExJQ0FU
SU9OCi0gICAgICAmJiAhbXV0dF9zdHJjYXNlY21wIChwcm90b2NvbF9taW5vciwgInBncC1zaWdu
YXR1cmUiKSkKKyAgICAgICYmICFtdXR0X2FzY2lpX3N0cmNhc2VjbXAgKHByb3RvY29sX21pbm9y
LCAicGdwLXNpZ25hdHVyZSIpKQogICAgIDsKICAgZWxzZSBpZiAoKFdpdGhDcnlwdG8gJiBBUFBM
SUNBVElPTl9TTUlNRSkKICAgICAgICAgICAgJiYgcHJvdG9jb2xfbWFqb3IgPT0gVFlQRUFQUExJ
Q0FUSU9OCi0JICAgJiYgIShtdXR0X3N0cmNhc2VjbXAgKHByb3RvY29sX21pbm9yLCAieC1wa2Nz
Ny1zaWduYXR1cmUiKQotCSAgICAgICAmJiBtdXR0X3N0cmNhc2VjbXAgKHByb3RvY29sX21pbm9y
LCAicGtjczctc2lnbmF0dXJlIikpKQorCSAgICYmICEobXV0dF9hc2NpaV9zdHJjYXNlY21wIChw
cm90b2NvbF9taW5vciwgIngtcGtjczctc2lnbmF0dXJlIikKKwkgICAgICAgJiYgbXV0dF9hc2Np
aV9zdHJjYXNlY21wIChwcm90b2NvbF9taW5vciwgInBrY3M3LXNpZ25hdHVyZSIpKSkKICAgICA7
CiAgIGVsc2UgaWYgKHByb3RvY29sX21ham9yID09IFRZUEVNVUxUSVBBUlQKLQkgICAmJiAhbXV0
dF9zdHJjYXNlY21wIChwcm90b2NvbF9taW5vciwgIm1peGVkIikpCisJICAgJiYgIW11dHRfYXNj
aWlfc3RyY2FzZWNtcCAocHJvdG9jb2xfbWlub3IsICJtaXhlZCIpKQogICAgIDsKICAgZWxzZQog
ICB7CkBAIC04NDAsNyArODQwLDcgQEAKIAl7CiAJICBpZiAoKFdpdGhDcnlwdG8gJiBBUFBMSUNB
VElPTl9QR1ApCiAgICAgICAgICAgICAgICYmIHNpZ25hdHVyZXNbaV0tPnR5cGUgPT0gVFlQRUFQ
UExJQ0FUSU9OIAotCSAgICAgICYmICFtdXR0X3N0cmNhc2VjbXAgKHNpZ25hdHVyZXNbaV0tPnN1
YnR5cGUsICJwZ3Atc2lnbmF0dXJlIikpCisJICAgICAgJiYgIW11dHRfYXNjaWlfc3RyY2FzZWNt
cCAoc2lnbmF0dXJlc1tpXS0+c3VidHlwZSwgInBncC1zaWduYXR1cmUiKSkKIAkgIHsKIAkgICAg
aWYgKGNyeXB0X3BncF92ZXJpZnlfb25lIChzaWduYXR1cmVzW2ldLCBzLCB0ZW1wZmlsZSkgIT0g
MCkKIAkgICAgICBnb29kc2lnID0gMDsKQEAgLTg1MCw4ICs4NTAsOCBAQAogCiAJICBpZiAoKFdp
dGhDcnlwdG8gJiBBUFBMSUNBVElPTl9TTUlNRSkKICAgICAgICAgICAgICAgJiYgc2lnbmF0dXJl
c1tpXS0+dHlwZSA9PSBUWVBFQVBQTElDQVRJT04gCi0JICAgICAgJiYgKCFtdXR0X3N0cmNhc2Vj
bXAoc2lnbmF0dXJlc1tpXS0+c3VidHlwZSwgIngtcGtjczctc2lnbmF0dXJlIikKLQkJICB8fCAh
bXV0dF9zdHJjYXNlY21wKHNpZ25hdHVyZXNbaV0tPnN1YnR5cGUsICJwa2NzNy1zaWduYXR1cmUi
KSkpCisJICAgICAgJiYgKCFtdXR0X2FzY2lpX3N0cmNhc2VjbXAoc2lnbmF0dXJlc1tpXS0+c3Vi
dHlwZSwgIngtcGtjczctc2lnbmF0dXJlIikKKwkJICB8fCAhbXV0dF9hc2NpaV9zdHJjYXNlY21w
KHNpZ25hdHVyZXNbaV0tPnN1YnR5cGUsICJwa2NzNy1zaWduYXR1cmUiKSkpCiAJICB7CiAJICAg
IGlmIChjcnlwdF9zbWltZV92ZXJpZnlfb25lIChzaWduYXR1cmVzW2ldLCBzLCB0ZW1wZmlsZSkg
IT0gMCkKIAkgICAgICBnb29kc2lnID0gMDsKZGlmZiAtcnUgbXV0dC5vcmlnL2hhbmRsZXIuYyBt
dXR0L2hhbmRsZXIuYwotLS0gbXV0dC5vcmlnL2hhbmRsZXIuYwkyMDA1LTExLTIyIDE0OjIxOjE0
LjAwMDAwMDAwMCArMDIwMAorKysgbXV0dC9oYW5kbGVyLmMJMjAwNS0xMi0wMSAyMTowODoxOC4w
MDAwMDAwMDAgKzAyMDAKQEAgLTE4NDMsNyArMTg0Myw3IEBACiAJaGFuZGxlciA9IG11dHRfc2ln
bmVkX2hhbmRsZXI7CiAgICAgfQogICAgIGVsc2UgaWYgKChXaXRoQ3J5cHRvICYgQVBQTElDQVRJ
T05fUEdQKQotICAgICAgICAgICAgICYmIG11dHRfc3RyY2FzZWNtcCAoImVuY3J5cHRlZCIsIGIt
PnN1YnR5cGUpID09IDApCisgICAgICAgICAgICAgJiYgbXV0dF9hc2NpaV9zdHJjYXNlY21wICgi
ZW5jcnlwdGVkIiwgYi0+c3VidHlwZSkgPT0gMCkKICAgICB7CiAgICAgICBwID0gbXV0dF9nZXRf
cGFyYW1ldGVyICgicHJvdG9jb2wiLCBiLT5wYXJhbWV0ZXIpOwogCmRpZmYgLXJ1IG11dHQub3Jp
Zy9pbml0LmMgbXV0dC9pbml0LmMKLS0tIG11dHQub3JpZy9pbml0LmMJMjAwNS0xMC0wNSAyMjoy
NDo0MC4wMDAwMDAwMDAgKzAzMDAKKysrIG11dHQvaW5pdC5jCTIwMDUtMTItMDEgMjE6MDk6MjYu
MDAwMDAwMDAwICswMjAwCkBAIC04MzQsOSArODM0LDkgQEAKICAgICBhID0gc2FmZV9tYWxsb2Mo
c2l6ZW9mKEFUVEFDSF9NQVRDSCkpOwogCiAgICAgLyogc29tZSBjaGVhcCBoYWNrcyB0aGF0IEkg
ZXhwZWN0IHRvIHJlbW92ZSAqLwotICAgIGlmICghbXV0dF9zdHJjYXNlY21wKGJ1Zi0+ZGF0YSwg
ImFueSIpKQorICAgIGlmICghbXV0dF9hc2NpaV9zdHJjYXNlY21wKGJ1Zi0+ZGF0YSwgImFueSIp
KQogICAgICAgYS0+bWFqb3IgPSBzYWZlX3N0cmR1cCgiKi8uKiIpOwotICAgIGVsc2UgaWYgKCFt
dXR0X3N0cmNhc2VjbXAoYnVmLT5kYXRhLCAibm9uZSIpKQorICAgIGVsc2UgaWYgKCFtdXR0X2Fz
Y2lpX3N0cmNhc2VjbXAoYnVmLT5kYXRhLCAibm9uZSIpKQogICAgICAgYS0+bWFqb3IgPSBzYWZl
X3N0cmR1cCgiY2hlYXBfaGFjay90aGlzX3Nob3VsZF9uZXZlcl9tYXRjaCIpOwogICAgIGVsc2UK
ICAgICAgIGEtPm1ham9yID0gc2FmZV9zdHJkdXAoYnVmLT5kYXRhKTsKQEAgLTg5OCw5ICs4OTgs
OSBAQAogICB7CiAgICAgbXV0dF9leHRyYWN0X3Rva2VuIChidWYsIHMsIDApOwogCi0gICAgaWYg
KCFtdXR0X3N0cmNhc2VjbXAoYnVmLT5kYXRhLCAiYW55IikpCisgICAgaWYgKCFtdXR0X2FzY2lp
X3N0cmNhc2VjbXAoYnVmLT5kYXRhLCAiYW55IikpCiAgICAgICB0bXAgPSBzYWZlX3N0cmR1cCgi
Ki8uKiIpOwotICAgIGVsc2UgaWYgKCFtdXR0X3N0cmNhc2VjbXAoYnVmLT5kYXRhLCAibm9uZSIp
KQorICAgIGVsc2UgaWYgKCFtdXR0X2FzY2lpX3N0cmNhc2VjbXAoYnVmLT5kYXRhLCAibm9uZSIp
KQogICAgICAgdG1wID0gc2FmZV9zdHJkdXAoImNoZWFwX2hhY2svdGhpc19zaG91bGRfbmV2ZXJf
bWF0Y2giKTsKICAgICBlbHNlCiAgICAgICB0bXAgPSBzYWZlX3N0cmR1cChidWYtPmRhdGEpOwpA
QCAtMTAwMSwxMyArMTAwMSwxMyBAQAogICAgIG9wID0gJysnOwogICAgIGNhdGVnb3J5LS07CiAg
IH0KLSAgaWYgKCFtdXR0X3N0cm5jYXNlY21wKGNhdGVnb3J5LCAiYXR0YWNobWVudCIsIHN0cmxl
bihjYXRlZ29yeSkpKSB7CisgIGlmICghbXV0dF9hc2NpaV9zdHJuY2FzZWNtcChjYXRlZ29yeSwg
ImF0dGFjaG1lbnQiLCBzdHJsZW4oY2F0ZWdvcnkpKSkgewogICAgIGlmIChvcCA9PSAnKycpCiAg
ICAgICBsaXN0cCA9ICZBdHRhY2hBbGxvdzsKICAgICBlbHNlCiAgICAgICBsaXN0cCA9ICZBdHRh
Y2hFeGNsdWRlOwogICB9Ci0gIGVsc2UgaWYgKCFtdXR0X3N0cm5jYXNlY21wKGNhdGVnb3J5LCAi
aW5saW5lIiwgc3RybGVuKGNhdGVnb3J5KSkpIHsKKyAgZWxzZSBpZiAoIW11dHRfYXNjaWlfc3Ry
bmNhc2VjbXAoY2F0ZWdvcnksICJpbmxpbmUiLCBzdHJsZW4oY2F0ZWdvcnkpKSkgewogICAgIGlm
IChvcCA9PSAnKycpCiAgICAgICBsaXN0cCA9ICZJbmxpbmVBbGxvdzsKICAgICBlbHNlCkBAIC0x
MDM4LDEzICsxMDM4LDEzIEBACiAgICAgb3AgPSAnKyc7CiAgICAgcC0tOwogICB9Ci0gIGlmICgh
bXV0dF9zdHJuY2FzZWNtcChwLCAiYXR0YWNobWVudCIsIHN0cmxlbihwKSkpIHsKKyAgaWYgKCFt
dXR0X2FzY2lpX3N0cm5jYXNlY21wKHAsICJhdHRhY2htZW50Iiwgc3RybGVuKHApKSkgewogICAg
IGlmIChvcCA9PSAnKycpCiAgICAgICBsaXN0cCA9ICZBdHRhY2hBbGxvdzsKICAgICBlbHNlCiAg
ICAgICBsaXN0cCA9ICZBdHRhY2hFeGNsdWRlOwogICB9Ci0gIGVsc2UgaWYgKCFtdXR0X3N0cm5j
YXNlY21wKHAsICJpbmxpbmUiLCBzdHJsZW4ocCkpKSB7CisgIGVsc2UgaWYgKCFtdXR0X2FzY2lp
X3N0cm5jYXNlY21wKHAsICJpbmxpbmUiLCBzdHJsZW4ocCkpKSB7CiAgICAgaWYgKG9wID09ICcr
JykKICAgICAgIGxpc3RwID0gJklubGluZUFsbG93OwogICAgIGVsc2UKZGlmZiAtcnUgbXV0dC5v
cmlnL2xpYi5jIG11dHQvbGliLmMKLS0tIG11dHQub3JpZy9saWIuYwkyMDA1LTA5LTE3IDIzOjQ2
OjEwLjAwMDAwMDAwMCArMDMwMAorKysgbXV0dC9saWIuYwkyMDA1LTEyLTAxIDIxOjEwOjEyLjAw
MDAwMDAwMCArMDIwMApAQCAtNDYsNiArNDYsNyBAQAogI2RlZmluZSBFWF9PSyAwCiAjZW5kaWYK
IAorI2luY2x1ZGUgImFzY2lpLmgiCiAjaW5jbHVkZSAibGliLmgiCiAKIHN0YXRpYyBzdHJ1Y3Qg
c3lzZXhpdHMKQEAgLTcwNCw2ICs3MDUsMTEgQEAKICAgcmV0dXJuIHN0cmNhc2VjbXAoTk9OVUxM
KGEpLCBOT05VTEwoYikpOwogfQogCitpbnQgbXV0dF9hc2NpaV9zdHJjYXNlY21wKGNvbnN0IGNo
YXIgKmEsIGNvbnN0IGNoYXIgKmIpCit7CisgIHJldHVybiBhc2NpaV9zdHJjYXNlY21wKE5PTlVM
TChhKSwgTk9OVUxMKGIpKTsKK30KKwogaW50IG11dHRfc3RybmNtcChjb25zdCBjaGFyICphLCBj
b25zdCBjaGFyICpiLCBzaXplX3QgbCkKIHsKICAgcmV0dXJuIHN0cm5jbXAoTk9OVUxMKGEpLCBO
T05VTEwoYiksIGwpOwpAQCAtNzE0LDYgKzcyMCwxMSBAQAogICByZXR1cm4gc3RybmNhc2VjbXAo
Tk9OVUxMKGEpLCBOT05VTEwoYiksIGwpOwogfQogCitpbnQgbXV0dF9hc2NpaV9zdHJuY2FzZWNt
cChjb25zdCBjaGFyICphLCBjb25zdCBjaGFyICpiLCBzaXplX3QgbCkKK3sKKyAgcmV0dXJuIGFz
Y2lpX3N0cm5jYXNlY21wKE5PTlVMTChhKSwgTk9OVUxMKGIpLCBsKTsKK30KKwogc2l6ZV90IG11
dHRfc3RybGVuKGNvbnN0IGNoYXIgKmEpCiB7CiAgIHJldHVybiBhID8gc3RybGVuIChhKSA6IDA7
CmRpZmYgLXJ1IG11dHQub3JpZy9saWIuaCBtdXR0L2xpYi5oCi0tLSBtdXR0Lm9yaWcvbGliLmgJ
MjAwNS0wOS0xNyAyMzo0NjoxMC4wMDAwMDAwMDAgKzAzMDAKKysrIG11dHQvbGliLmgJMjAwNS0x
Mi0wMSAyMToxMjo0MC4wMDAwMDAwMDAgKzAyMDAKQEAgLTEyOCw4ICsxMjgsMTAgQEAKIGludCBt
dXR0X2NvcHlfYnl0ZXMgKEZJTEUgKiwgRklMRSAqLCBzaXplX3QpOwogaW50IG11dHRfcnhfc2Fu
aXRpemVfc3RyaW5nIChjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAqKTsKIGludCBtdXR0X3N0
cmNhc2VjbXAgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKK2ludCBtdXR0X2FzY2lpX3N0
cmNhc2VjbXAgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKIGludCBtdXR0X3N0cmNtcCAo
Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwogaW50IG11dHRfc3RybmNhc2VjbXAgKGNvbnN0
IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOworaW50IG11dHRfYXNjaWlfc3RybmNhc2Vj
bXAgKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXplX3QpOwogaW50IG11dHRfc3RybmNt
cCAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHNpemVfdCk7CiBpbnQgbXV0dF9zdHJjb2xs
IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiBpbnQgc2FmZV9vcGVuIChjb25zdCBjaGFy
ICosIGludCk7CmRpZmYgLXJ1IG11dHQub3JpZy9wYXJzZS5jIG11dHQvcGFyc2UuYwotLS0gbXV0
dC5vcmlnL3BhcnNlLmMJMjAwNS0xMC0yMSAwNzozNTozNy4wMDAwMDAwMDAgKzAzMDAKKysrIG11
dHQvcGFyc2UuYwkyMDA1LTEyLTAxIDIxOjEwOjM2LjAwMDAwMDAwMCArMDIwMApAQCAtMTU0Miw3
ICsxNTQyLDcgQEAKICAgICB7CiAgICAgICAvKiBBbHdheXMgcmVjdXJzZSBtdWx0aXBhcnRzLCBl
eGNlcHQgbXVsdGlwYXJ0L2FsdGVybmF0aXZlLiAqLwogICAgICAgc2hhbGxyZWN1cnNlID0gMTsK
LSAgICAgIGlmICghbXV0dF9zdHJjYXNlY21wKGJwLT5zdWJ0eXBlLCAiYWx0ZXJuYXRpdmUiKSkK
KyAgICAgIGlmICghbXV0dF9hc2NpaV9zdHJjYXNlY21wKGJwLT5zdWJ0eXBlLCAiYWx0ZXJuYXRp
dmUiKSkKICAgICAgICAgc2hhbGxyZWN1cnNlID0gMDsKIAogICAgICAgLyogRG9uJ3QgY291bnQg
Y29udGFpbmVycyBpZiB0aGV5J3JlIHRvcC1sZXZlbC4gKi8KZGlmZiAtcnUgbXV0dC5vcmlnL3Nt
aW1lLmMgbXV0dC9zbWltZS5jCi0tLSBtdXR0Lm9yaWcvc21pbWUuYwkyMDA1LTEwLTIxIDA3OjM1
OjM4LjAwMDAwMDAwMCArMDMwMAorKysgbXV0dC9zbWltZS5jCTIwMDUtMTItMDEgMjE6MTE6NTUu
MDAwMDAwMDAwICswMjAwCkBAIC0xNjIxLDcgKzE2MjEsNyBAQAogICAgICAgcmV3aW5kIChzbWlt
ZWVycik7CiAgICAgICAKICAgICAgIGxpbmUgPSBtdXR0X3JlYWRfbGluZSAobGluZSwgJmxpbmVs
ZW4sIHNtaW1lZXJyLCAmbGluZW5vKTsKLSAgICAgIGlmIChsaW5lbGVuICYmICFtdXR0X3N0cmNh
c2VjbXAgKGxpbmUsICJ2ZXJpZmljYXRpb24gc3VjY2Vzc2Z1bCIpKQorICAgICAgaWYgKGxpbmVs
ZW4gJiYgIW11dHRfYXNjaWlfc3RyY2FzZWNtcCAobGluZSwgInZlcmlmaWNhdGlvbiBzdWNjZXNz
ZnVsIikpCiAJYmFkc2lnID0gMDsKIAogICAgICAgRlJFRSAoJmxpbmUpOwpAQCAtMTg0Miw3ICsx
ODQyLDcgQEAKICAgICByZXdpbmQgKHNtaW1lZXJyKTsKICAgICAKICAgICBsaW5lID0gbXV0dF9y
ZWFkX2xpbmUgKGxpbmUsICZsaW5lbGVuLCBzbWltZWVyciwgJmxpbmVubyk7Ci0gICAgaWYgKGxp
bmVsZW4gJiYgIW11dHRfc3RyY2FzZWNtcCAobGluZSwgInZlcmlmaWNhdGlvbiBzdWNjZXNzZnVs
IikpCisgICAgaWYgKGxpbmVsZW4gJiYgIW11dHRfYXNjaWlfc3RyY2FzZWNtcCAobGluZSwgInZl
cmlmaWNhdGlvbiBzdWNjZXNzZnVsIikpCiAgICAgICBtLT5nb29kc2lnID0gMTsKICAgICBGUkVF
ICgmbGluZSk7CiAgIH0K