Date: Mon, 31 Mar 2014 16:10:03 GMT From: Tomohisa Tanaka <tomohisa.tanaka@gmail.com> To: freebsd-standards@FreeBSD.org Subject: Re: standards/188036: mblen(3) in EUC locales causes crash and segmentation fault. Message-ID: <201403311610.s2VGA3E1055670@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR standards/188036; it has been noted by GNATS. From: Tomohisa Tanaka <tomohisa.tanaka@gmail.com> To: David Chisnall <theraven@freebsd.org> Cc: freebsd-gnats-submit@freebsd.org Subject: Re: standards/188036: mblen(3) in EUC locales causes crash and segmentation fault. Date: Tue, 1 Apr 2014 01:01:46 +0900 --20cf303f672e1e5ef404f5e92be2 Content-Type: multipart/alternative; boundary=20cf303f672e1e5ef004f5e92be0 --20cf303f672e1e5ef004f5e92be0 Content-Type: text/plain; charset=ISO-8859-1 Thank you for your quick reply. Please can you test this and let me know if it fixes it for you? Yes, but it does not work for me as follows: % gcc -g3 main.c ~/work/freebsd-usr-src/lib/libc/libc.a % gdb ./a.out GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) run Starting program: /usr/home/syl/work/mblen/a.out setlocale: ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/C Program received signal SIGSEGV, Segmentation fault. 0x000000000041823b in _EUC_mbrtowc (pwc=0x0, s=0x4321b2 "a", n=1, ps=0x63f318) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/euc.c:182 182 want = CEI->count[set = _euc_set(*s)]; (gdb) bt #0 0x000000000041823b in _EUC_mbrtowc (pwc=0x0, s=0x4321b2 "a", n=1, ps=0x63f318) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/euc.c:182 #1 0x0000000000406def in mblen_l (s=0x4321b2 "a", n=1, locale=0x63f260) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/mblen.c:51 #2 0x0000000000406e95 in mblen (s=0x4321b2 "a", n=1) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/mblen.c:60 #3 0x0000000000406bb6 in main () at main.c:16 (gdb) Actually, I'm not sure how this bug can manifest, unless you've somehow > built libc with the wrong headers. In runtype.h (which is included in > euc.c), we have this: > #define _CurrentRuneLocale (__getCurrentRuneLocale()) > So these two versions should expand to the same thing. (Your fix causes the same thing for me, so you're right.) The libc that I used for How-To-Repeat is not built by me (installed by installer). % setenv LC_MESSAGES C % env LANG=ja_JP.eucJP ./a.out setlocale: ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/C Segmentation fault (core dumped) % ldd ./a.out ./a.out: libc.so.7 => /lib/libc.so.7 (0x80081a000) % env LANG=C ls -l /lib/libc.so.7 -r--r--r-- 1 root wheel 1406888 Sep 27 2013 /lib/libc.so.7 % md5 /lib/libc.so.7 MD5 (/lib/libc.so.7) = d997dd201ec08270e17383223fd2c40a (I verified /lib/libc.so.7 is not changed from http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.2-RELEASE/base.txz) I'm sorry, I had not understood this issue enough to make a patch.I show another sample as follows: % cat main1.c #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <xlocale.h> #include <runetype.h> static void showVariables(void) { printf("_ThreadRuneLocale: %p\n", _ThreadRuneLocale); if (_ThreadRuneLocale != NULL) { printf("_ThreadRuneLocale->__variable: %p\n", _ThreadRuneLocale->__variable); } printf("__getCurrentRuneLocale(): %p\n", __getCurrentRuneLocale()); if (__getCurrentRuneLocale() != NULL) { printf("__getCurrentRuneLocale()->__variable: %p\n", __getCurrentRuneLocale()->__variable); } printf("&_DefaultRuneLocale: %p\n", &_DefaultRuneLocale); printf("&_DefaultRuneLocale->__variable: %p\n", (&_DefaultRuneLocale)->__variable); } int main(void) { printf("setlocale: %s\n", setlocale(LC_ALL, "")); printf("[0]\n"); showVariables(); locale_t newLocale = newlocale(LC_ALL_MASK, "C", NULL); locale_t oldLocale = uselocale(newLocale); /* ... */ printf("[1]\n"); showVariables(); uselocale(oldLocale); printf("[2]\n"); showVariables(); printf("%d\n", mblen("a", 1)); return 0; } % gcc -g3 main1.c % gdb ./a.out GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) run Starting program: /usr/home/syl/work/mblen/a.out setlocale: ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/C [0] _ThreadRuneLocale: 0x0 __getCurrentRuneLocale(): 0x800d0c000 __getCurrentRuneLocale()->__variable: 0x800c07040 &_DefaultRuneLocale: 0x600ee0 &_DefaultRuneLocale->__variable: 0x0 [1] _ThreadRuneLocale: 0x600ee0 _ThreadRuneLocale->__variable: 0x0 __getCurrentRuneLocale(): 0x600ee0 __getCurrentRuneLocale()->__variable: 0x0 &_DefaultRuneLocale: 0x600ee0 &_DefaultRuneLocale->__variable: 0x0 [2] _ThreadRuneLocale: 0x600ee0 _ThreadRuneLocale->__variable: 0x0 __getCurrentRuneLocale(): 0x600ee0 __getCurrentRuneLocale()->__variable: 0x0 &_DefaultRuneLocale: 0x600ee0 &_DefaultRuneLocale->__variable: 0x0 Program received signal SIGSEGV, Segmentation fault. 0x0000000800908880 in mbsnrtowcs () from /lib/libc.so.7 (gdb) After calling 'uselocale(oldLocale)' [2], _ThreadRuneLocale should not be 0x600ee0.It is strange that the states [1] and [2] are the same. (I hope this helps.) If I can help you in any other way, please let me know. 2014-03-31 18:57 GMT+09:00 David Chisnall <theraven@freebsd.org>: > On 31 Mar 2014, at 10:03, David Chisnall <theraven@FreeBSD.org> wrote: > > > I think the fix should actually be: > > > > Index: locale/euc.c > > =================================================================== > > --- locale/euc.c (revision 263226) > > +++ locale/euc.c (working copy) > > @@ -134,7 +134,7 @@ > > return (ps == NULL || ((const _EucState *)ps)->want == 0); > > } > > > > -#define CEI ((_EucInfo *)(_CurrentRuneLocale->__variable)) > > +#define CEI ((_EucInfo > *)(__getCurrentRuneLocale()->__variable)) > > > > #define _SS2 0x008e > > #define _SS3 0x008f > > > > > > > > Please can you test this and let me know if it fixes it for you? > > Actually, I'm not sure how this bug can manifest, unless you've somehow > built libc with the wrong headers. In runtype.h (which is included in > euc.c), we have this: > > #define _CurrentRuneLocale (__getCurrentRuneLocale()) > > So these two versions should expand to the same thing. > > David > > -- Tomohisa Tanaka Tomohisa.Tanaka@gmail.com --20cf303f672e1e5ef004f5e92be0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">Thank you for your quick reply.<br><br><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo= rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">= Please can you test this and let me know if it fixes it for you?</blockquot= e> <br>Yes, but it does not work for me as follows:<br><pre style=3D"color:rgb= (0,0,0);word-wrap:break-word;white-space:pre-wrap">% gcc -g3 main.c ~/work/= freebsd-usr-src/lib/libc/libc.a=20 % gdb ./a.out=20 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you ar= e welcome to change it and/or distribute copies of it under certain condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" fo= r details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) run Starting program: /usr/home/syl/work/mblen/a.out=20 setlocale: ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/C Program received signal SIGSEGV, Segmentation fault. 0x000000000041823b in _EUC_mbrtowc (pwc=3D0x0, s=3D0x4321b2 "a", = n=3D1, ps=3D0x63f318) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/euc.c:182 182 want =3D CEI->count[set =3D _euc_set(*s)]; (gdb) bt #0 0x000000000041823b in _EUC_mbrtowc (pwc=3D0x0, s=3D0x4321b2 "a&quo= t;, n=3D1,=20 ps=3D0x63f318) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/euc.c:182 #1 0x0000000000406def in mblen_l (s=3D0x4321b2 "a", n=3D1, local= e=3D0x63f260) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/mblen.c:51 #2 0x0000000000406e95 in mblen (s=3D0x4321b2 "a", n=3D1) at /usr/home/syl/work/freebsd-usr-src/lib/libc/locale/mblen.c:60 #3 0x0000000000406bb6 in main () at main.c:16 (gdb) </pre><br><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0= px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-le= ft-style:solid;padding-left:1ex">Actually, I'm not sure how this bug ca= n manifest, unless you've somehow built libc with the wrong headers. = =A0In runtype.h (which is included in euc.c), we have this:<br> #define _CurrentRuneLocale (__getCurrentRuneLocale())<br>So these two versi= ons should expand to the same thing.</blockquote><div><br></div><div>(Your = fix causes the same thing for me, so you're right.)</div><div>The libc = that I used for How-To-Repeat is not built by me (installed by installer).<= /div> <pre style=3D"color:rgb(0,0,0);word-wrap:break-word;white-space:pre-wrap">%= setenv LC_MESSAGES C % env LANG=3Dja_JP.eucJP ./a.out setlocale: ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/C Segmentation fault (core dumped) % ldd ./a.out ./a.out: libc.so.7 =3D> /lib/libc.so.7 (0x80081a000) % env LANG=3DC ls -l /lib/libc.so.7=20 -r--r--r-- 1 root wheel 1406888 Sep 27 2013 /lib/libc.so.7 % md5 /lib/libc.so.7 MD5 (/lib/libc.so.7) =3D d997dd201ec08270e17383223fd2c40a</pre><pre style= =3D"word-wrap:break-word"><font face=3D"arial"><span style=3D"white-space:n= ormal">(I verified /lib/libc.so.7 is not changed from<br></span></font><spa= n style=3D"color:rgb(0,0,0);font-family:arial;white-space:pre-wrap"><a href= =3D"http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.2-RELEASE/base.txz"= >http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/9.2-RELEASE/base.txz</a>= ) </span><span style=3D"color:rgb(0,0,0);font-family:arial;white-space:pre-wr= ap"> I'm sorry, I had not understood this issue enough to make a patch. </span><span style=3D"color:rgb(0,0,0);font-family:arial;white-space:pre-wr= ap">I show another sample as follows:</span></pre><pre style=3D"word-wrap:b= reak-word"><pre style=3D"color:rgb(0,0,0);word-wrap:break-word;white-space:= pre-wrap"> % cat main1.c #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <xlocale.h> #include <runetype.h> static void showVariables(void) { printf("_ThreadRuneLocale: %p\n", _ThreadRuneLocale); if (_ThreadRuneLocale !=3D NULL) { printf("_ThreadRuneLocale->__variable: %p\n", _ThreadRuneLocale->__variable); } printf("__getCurrentRuneLocale(): %p\n", __getCurrentRuneLocale= ()); if (__getCurrentRuneLocale() !=3D NULL) { printf("__getCurrentRuneLocale()->__variable: %p\n", __getCurrentRuneLocale()->__variable); } printf("&_DefaultRuneLocale: %p\n", &_DefaultRuneLocale= ); printf("&_DefaultRuneLocale->__variable: %p\n", (&_DefaultRuneLocale)->__variable); } int main(void) { printf("setlocale: %s\n", setlocale(LC_ALL, "")); printf("[0]\n"); showVariables(); locale_t newLocale =3D newlocale(LC_ALL_MASK, "C", NULL); locale_t oldLocale =3D uselocale(newLocale); /* ... */ printf("[1]\n"); showVariables(); uselocale(oldLocale); printf("[2]\n"); showVariables(); printf("%d\n", mblen("a", 1)); return 0; } % gcc -g3 main1.c % gdb ./a.out GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you ar= e welcome to change it and/or distribute copies of it under certain condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" fo= r details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) run Starting program: /usr/home/syl/work/mblen/a.out=20 setlocale: ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/ja_JP.eucJP/C [0] _ThreadRuneLocale: 0x0 __getCurrentRuneLocale(): 0x800d0c000 __getCurrentRuneLocale()->__variable: 0x800c07040 &_DefaultRuneLocale: 0x600ee0 &_DefaultRuneLocale->__variable: 0x0 [1] _ThreadRuneLocale: 0x600ee0 _ThreadRuneLocale->__variable: 0x0 __getCurrentRuneLocale(): 0x600ee0 __getCurrentRuneLocale()->__variable: 0x0 &_DefaultRuneLocale: 0x600ee0 &_DefaultRuneLocale->__variable: 0x0 [2] _ThreadRuneLocale: 0x600ee0 _ThreadRuneLocale->__variable: 0x0 __getCurrentRuneLocale(): 0x600ee0 __getCurrentRuneLocale()->__variable: 0x0 &_DefaultRuneLocale: 0x600ee0 &_DefaultRuneLocale->__variable: 0x0 Program received signal SIGSEGV, Segmentation fault. 0x0000000800908880 in mbsnrtowcs () from /lib/libc.so.7 (gdb) <span style=3D"font-family:arial"> </span></pre><pre style=3D"word-wr= ap:break-word"><pre style=3D"word-wrap:break-word"><span style=3D"white-spa= ce:pre-wrap;color:rgb(0,0,0);font-family:arial">After calling 'uselocal= e(oldLocale)' [2], _ThreadRuneLocale </span><span style=3D"white-space:= pre-wrap;color:rgb(0,0,0);font-family:arial">should not be 0x600ee0. </span><span style=3D"color:rgb(0,0,0)"><font face=3D"arial"><span style=3D= "white-space:pre-wrap">It is strange that the states [1] and [2] are the sa= me. (I hope this helps.)</span></font></span></pre><pre style=3D"word-wrap:= break-word"> <span style=3D"color:rgb(0,0,0);font-family:Arial,'Arial New','= \00ff2d\00ff33 \00ff30 \0030b4\0030b7\0030c3\0030af',sans-serif;font-si= ze:13px;white-space:normal">If I can help you in any other way, please let = me know.</span></pre> <pre style=3D"color:rgb(34,34,34);white-space:pre-wrap;word-wrap:break-word= "></pre></pre></pre></div><div class=3D"gmail_extra"><br><br><div class=3D"= gmail_quote">2014-03-31 18:57 GMT+09:00 David Chisnall <span dir=3D"ltr">&l= t;<a href=3D"mailto:theraven@freebsd.org" target=3D"_blank">theraven@freebs= d.org</a>></span>:<br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"><div class=3D"">On 31 Mar 2014, at 10:03, Da= vid Chisnall <theraven@FreeBSD.org> wrote:<br> <br> > I think the fix should actually be:<br> ><br> > Index: locale/euc.c<br> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br> > --- locale/euc.c =A0 =A0 =A0(revision 263226)<br> > +++ locale/euc.c =A0 =A0 =A0(working copy)<br> > @@ -134,7 +134,7 @@<br> > =A0 =A0 =A0 return (ps =3D=3D NULL || ((const _EucState *)ps)->want= =3D=3D 0);<br> > }<br> ><br> > -#define =A0 =A0 =A0CEI =A0 =A0 ((_EucInfo *)(_CurrentRuneLocale->_= _variable))<br> > +#define =A0 =A0 =A0CEI =A0 =A0 ((_EucInfo *)(__getCurrentRuneLocale()= ->__variable))<br> ><br> > #define =A0 =A0 =A0 _SS2 =A0 =A00x008e<br> > #define =A0 =A0 =A0 _SS3 =A0 =A00x008f<br> ><br> ><br> ><br> > Please can you test this and let me know if it fixes it for you?<br> <br> </div>Actually, I'm not sure how this bug can manifest, unless you'= ve somehow built libc with the wrong headers. =A0In runtype.h (which is inc= luded in euc.c), we have this:<br> <br> #define _CurrentRuneLocale (__getCurrentRuneLocale())<br> <br> So these two versions should expand to the same thing.<br> <span class=3D"HOEnZb"><font color=3D"#888888"><br> David<br> <br> </font></span></blockquote></div><br><br clear=3D"all"><div><br></div>-- <b= r>Tomohisa Tanaka<br><a href=3D"mailto:Tomohisa.Tanaka@gmail.com">Tomohisa.= Tanaka@gmail.com</a> </div> --20cf303f672e1e5ef004f5e92be0-- --20cf303f672e1e5ef404f5e92be2 Content-Type: text/plain; charset=US-ASCII; name="report1.txt" Content-Disposition: attachment; filename="report1.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_htfxye6m0 JSBnY2MgLWczIG1haW4uYyB+L3dvcmsvZnJlZWJzZC11c3Itc3JjL2xpYi9saWJjL2xpYmMuYQol IGdkYiAuL2Eub3V0CkdOVSBnZGIgNi4xLjEgW0ZyZWVCU0RdCkNvcHlyaWdodCAyMDA0IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpHREIgaXMgZnJlZSBzb2Z0d2FyZSwgY292ZXJlZCBi eSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFuZCB5b3UgYXJlCndlbGNvbWUgdG8g Y2hhbmdlIGl0IGFuZC9vciBkaXN0cmlidXRlIGNvcGllcyBvZiBpdCB1bmRlciBjZXJ0YWluIGNv bmRpdGlvbnMuClR5cGUgInNob3cgY29weWluZyIgdG8gc2VlIHRoZSBjb25kaXRpb25zLgpUaGVy ZSBpcyBhYnNvbHV0ZWx5IG5vIHdhcnJhbnR5IGZvciBHREIuICBUeXBlICJzaG93IHdhcnJhbnR5 IiBmb3IgZGV0YWlscy4KVGhpcyBHREIgd2FzIGNvbmZpZ3VyZWQgYXMgImFtZDY0LW1hcmNlbC1m cmVlYnNkIi4uLgooZ2RiKSBydW4KU3RhcnRpbmcgcHJvZ3JhbTogL3Vzci9ob21lL3N5bC93b3Jr L21ibGVuL2Eub3V0IApzZXRsb2NhbGU6IGphX0pQLmV1Y0pQL2phX0pQLmV1Y0pQL2phX0pQLmV1 Y0pQL2phX0pQLmV1Y0pQL2phX0pQLmV1Y0pQL0MKClByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIFNJ R1NFR1YsIFNlZ21lbnRhdGlvbiBmYXVsdC4KMHgwMDAwMDAwMDAwNDE4MjNiIGluIF9FVUNfbWJy dG93YyAocHdjPTB4MCwgcz0weDQzMjFiMiAiYSIsIG49MSwgcHM9MHg2M2YzMTgpCiAgICBhdCAv dXNyL2hvbWUvc3lsL3dvcmsvZnJlZWJzZC11c3Itc3JjL2xpYi9saWJjL2xvY2FsZS9ldWMuYzox ODIKMTgyICAgICAgICAgICAgICAgICAgICAgd2FudCA9IENFSS0+Y291bnRbc2V0ID0gX2V1Y19z ZXQoKnMpXTsKKGdkYikgCg== --20cf303f672e1e5ef404f5e92be2 Content-Type: text/plain; charset=US-ASCII; name="report2.txt" Content-Disposition: attachment; filename="report2.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_htfxyj7g1 JSBjYXQgbWFpbjEuYwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5j bHVkZSA8bG9jYWxlLmg+CiNpbmNsdWRlIDx4bG9jYWxlLmg+CiNpbmNsdWRlIDxydW5ldHlwZS5o PgoKc3RhdGljIHZvaWQKc2hvd1ZhcmlhYmxlcyh2b2lkKQp7CiAgcHJpbnRmKCJfVGhyZWFkUnVu ZUxvY2FsZTogJXBcbiIsIF9UaHJlYWRSdW5lTG9jYWxlKTsKICBpZiAoX1RocmVhZFJ1bmVMb2Nh bGUgIT0gTlVMTCkgewogICAgcHJpbnRmKCJfVGhyZWFkUnVuZUxvY2FsZS0+X192YXJpYWJsZTog JXBcbiIsCiAgICAgICAgICAgX1RocmVhZFJ1bmVMb2NhbGUtPl9fdmFyaWFibGUpOwogIH0KICBw cmludGYoIl9fZ2V0Q3VycmVudFJ1bmVMb2NhbGUoKTogJXBcbiIsIF9fZ2V0Q3VycmVudFJ1bmVM b2NhbGUoKSk7CiAgaWYgKF9fZ2V0Q3VycmVudFJ1bmVMb2NhbGUoKSAhPSBOVUxMKSB7CiAgICBw cmludGYoIl9fZ2V0Q3VycmVudFJ1bmVMb2NhbGUoKS0+X192YXJpYWJsZTogJXBcbiIsCiAgICAg ICAgICAgX19nZXRDdXJyZW50UnVuZUxvY2FsZSgpLT5fX3ZhcmlhYmxlKTsKICB9CiAgcHJpbnRm KCImX0RlZmF1bHRSdW5lTG9jYWxlOiAlcFxuIiwgJl9EZWZhdWx0UnVuZUxvY2FsZSk7CiAgcHJp bnRmKCImX0RlZmF1bHRSdW5lTG9jYWxlLT5fX3ZhcmlhYmxlOiAlcFxuIiwKICAgICAgICAgKCZf RGVmYXVsdFJ1bmVMb2NhbGUpLT5fX3ZhcmlhYmxlKTsKfQoKaW50Cm1haW4odm9pZCkKewogIHBy aW50Zigic2V0bG9jYWxlOiAlc1xuIiwgc2V0bG9jYWxlKExDX0FMTCwgIiIpKTsKCiAgcHJpbnRm KCJbMF1cbiIpOwogIHNob3dWYXJpYWJsZXMoKTsKCiAgbG9jYWxlX3QgbmV3TG9jYWxlID0gbmV3 bG9jYWxlKExDX0FMTF9NQVNLLCAiQyIsIE5VTEwpOwogIGxvY2FsZV90IG9sZExvY2FsZSA9IHVz ZWxvY2FsZShuZXdMb2NhbGUpOwogIC8qIC4uLiAqLwoKICBwcmludGYoIlsxXVxuIik7CiAgc2hv d1ZhcmlhYmxlcygpOwoKICB1c2Vsb2NhbGUob2xkTG9jYWxlKTsKCiAgcHJpbnRmKCJbMl1cbiIp OwogIHNob3dWYXJpYWJsZXMoKTsKCiAgcHJpbnRmKCIlZFxuIiwgbWJsZW4oImEiLCAxKSk7CiAg cmV0dXJuIDA7Cn0KJSBnY2MgLWczIG1haW4xLmMKJSBnZGIgLi9hLm91dApHTlUgZ2RiIDYuMS4x IFtGcmVlQlNEXQpDb3B5cmlnaHQgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K R0RCIGlzIGZyZWUgc29mdHdhcmUsIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlLCBhbmQgeW91IGFyZQp3ZWxjb21lIHRvIGNoYW5nZSBpdCBhbmQvb3IgZGlzdHJpYnV0 ZSBjb3BpZXMgb2YgaXQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zLgpUeXBlICJzaG93IGNvcHlp bmciIHRvIHNlZSB0aGUgY29uZGl0aW9ucy4KVGhlcmUgaXMgYWJzb2x1dGVseSBubyB3YXJyYW50 eSBmb3IgR0RCLiAgVHlwZSAic2hvdyB3YXJyYW50eSIgZm9yIGRldGFpbHMuClRoaXMgR0RCIHdh cyBjb25maWd1cmVkIGFzICJhbWQ2NC1tYXJjZWwtZnJlZWJzZCIuLi4KKGdkYikgcnVuClN0YXJ0 aW5nIHByb2dyYW06IC91c3IvaG9tZS9zeWwvd29yay9tYmxlbi9hLm91dCAKc2V0bG9jYWxlOiBq YV9KUC5ldWNKUC9qYV9KUC5ldWNKUC9qYV9KUC5ldWNKUC9qYV9KUC5ldWNKUC9qYV9KUC5ldWNK UC9DClswXQpfVGhyZWFkUnVuZUxvY2FsZTogMHgwCl9fZ2V0Q3VycmVudFJ1bmVMb2NhbGUoKTog MHg4MDBkMGMwMDAKX19nZXRDdXJyZW50UnVuZUxvY2FsZSgpLT5fX3ZhcmlhYmxlOiAweDgwMGMw NzA0MAomX0RlZmF1bHRSdW5lTG9jYWxlOiAweDYwMGVlMAomX0RlZmF1bHRSdW5lTG9jYWxlLT5f X3ZhcmlhYmxlOiAweDAKWzFdCl9UaHJlYWRSdW5lTG9jYWxlOiAweDYwMGVlMApfVGhyZWFkUnVu ZUxvY2FsZS0+X192YXJpYWJsZTogMHgwCl9fZ2V0Q3VycmVudFJ1bmVMb2NhbGUoKTogMHg2MDBl ZTAKX19nZXRDdXJyZW50UnVuZUxvY2FsZSgpLT5fX3ZhcmlhYmxlOiAweDAKJl9EZWZhdWx0UnVu ZUxvY2FsZTogMHg2MDBlZTAKJl9EZWZhdWx0UnVuZUxvY2FsZS0+X192YXJpYWJsZTogMHgwClsy XQpfVGhyZWFkUnVuZUxvY2FsZTogMHg2MDBlZTAKX1RocmVhZFJ1bmVMb2NhbGUtPl9fdmFyaWFi bGU6IDB4MApfX2dldEN1cnJlbnRSdW5lTG9jYWxlKCk6IDB4NjAwZWUwCl9fZ2V0Q3VycmVudFJ1 bmVMb2NhbGUoKS0+X192YXJpYWJsZTogMHgwCiZfRGVmYXVsdFJ1bmVMb2NhbGU6IDB4NjAwZWUw CiZfRGVmYXVsdFJ1bmVMb2NhbGUtPl9fdmFyaWFibGU6IDB4MAoKUHJvZ3JhbSByZWNlaXZlZCBz aWduYWwgU0lHU0VHViwgU2VnbWVudGF0aW9uIGZhdWx0LgoweDAwMDAwMDA4MDA5MDg4ODAgaW4g bWJzbnJ0b3djcyAoKSBmcm9tIC9saWIvbGliYy5zby43CihnZGIpIAo= --20cf303f672e1e5ef404f5e92be2--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201403311610.s2VGA3E1055670>