<<< Date Index >>>     <<< Thread Index >>>

Re: mutt/2144: Please always use ascii_strcasecmp to compare ASCII parameter strings



The following reply was made to PR mutt/2144; it has been noted by GNATS.

From: Thomas Roessler <roessler@xxxxxxxxxxxxxxxxxx>
To: bug-any@xxxxxxxxxxxxx
Cc: 
Subject: Re: mutt/2144: Please always use ascii_strcasecmp to compare ASCII 
parameter strings
Date: Thu, 1 Dec 2005 15:26:04 -0500

 Is there any particular reason why you introduce additional
 functions with a mutt_prefix, instead of using ascii_strcasecmp
 and ascii_strncasecmp?
 
 (I haven't looked at the patch, just at the description.)
 
 On 2005-12-01 20:47:38 +0100, Recai Oktas wrote:
 > From: Recai Oktas <roktas@xxxxxxxxxx>
 > To: Mutt Developers <mutt-dev@xxxxxxxx>
 > Date: Thu, 01 Dec 2005 20:47:38 +0100
 > Subject: mutt/2144: Please always use ascii_strcasecmp to compare ASCII 
 > parameter strings
 > Reply-To: bug-any@xxxxxxxxxxxxx
 > X-Spam-Level: 
 > 
 > >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
 >  
 > 
 > 
 
 -- 
 Thomas Roessler                              <roessler@xxxxxxxxxxxxxxxxxx>