From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3361 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: util-linux-2.23 mount segmentation fault error Date: Sun, 26 May 2013 00:46:17 +0900 Message-ID: Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8ffbac03f3034104dd8cd096 X-Trace: ger.gmane.org 1369496790 18221 80.91.229.3 (25 May 2013 15:46:30 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 25 May 2013 15:46:30 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3365-gllmg-musl=m.gmane.org@lists.openwall.com Sat May 25 17:46:32 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UgGfv-0001sY-E9 for gllmg-musl@plane.gmane.org; Sat, 25 May 2013 17:46:31 +0200 Original-Received: (qmail 7348 invoked by uid 550); 25 May 2013 15:46:30 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 7340 invoked from network); 25 May 2013 15:46:29 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=t2g3ZBTYvSf6denkIA1gagDg+Qc/lTk55ZwMcBBgcLw=; b=mkQBQNWge2ovjDZsKPDm0Pb5MIiY3yINAbnRwH10Zjq1k1DHa/R8MkeOAIS1zEZpdc LFlqh1StMGlhsKW0LYSEsbRMWkSUAKvVA80KNpYJGJGrY6/mKookl6fMOaTqc3UnMUzf jVB2g/yX0NO9LgxbFBqoRZEFerq1EdcNsrp71Dw9Bdb0cWFmdhZYLF/yjXf/Lxe4Nsw6 X7F1tY4ugvu2cN6ZHM6GDQICurMJvuj4GMp3WstcWSG8ef+hnX3jX404fCU2bDW+LOFW dXrPERoQ79Wu86ZRPaQbt2E2O0lMaDS1RRMD2ShCirAB3kH6+Xg9sssGoyBnlYG969Ed mc4A== X-Received: by 10.66.119.145 with SMTP id ku17mr22773669pab.204.1369496777586; Sat, 25 May 2013 08:46:17 -0700 (PDT) Xref: news.gmane.org gmane.linux.lib.musl.general:3361 Archived-At: --e89a8ffbac03f3034104dd8cd096 Content-Type: text/plain; charset=ISO-8859-1 Hi, i had compile util-linux-2.23 successfully, but when i test mount binary, it getting segmentation fault. http://plan9assembler.wordpress.com/2013/05/25/udev-in-x86_64-linux-musl/ $ cd util-linux-2.23 $ cd .libs $ ./mount mount[5449]: segfault at 2f ip 00007f593a84f903 sp 00008fff894870e8 error 4 in libc.so[7f593a804000+72000] Segmentation fault $ util-linux-2.23 version use qsort_r(), so i added it from ccl (C Containers library ) and changed parameter order. https://ccl.googlecode.com/svn/trunk/qsort_r.c vi musl/include/stdlib.h typedef int cmp_t(void *, const void*, const void*); void qsort_r(void *, size_t, size_t, cmp_t *, void*); --e89a8ffbac03f3034104dd8cd096 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi,

i had compile util-linux-2.23 successfully, but when i test mount binar= y,
it getting segmentation fault.
http://plan9assemb= ler.wordpress.com/2013/05/25/udev-in-x86_64-linux-musl/

$ cd util-linux-2.23
$ cd .libs
$ ./mount
<= /div>=A0mount[5449]: segfault at 2f ip 00007f593a84f903 sp 00008fff894870e8= error 4 in libc.so[7f593a804000+72000]
Segmentation fault
$
util-linux-2.23 version use qsort_r(), so i added it from ccl (C = Containers library)
and changed parameter order.
<= div>
vi=A0 musl/includ= e/stdlib.h
typedef int cmp_t(void *, const void*, const void*= );
void qsort_r(void *, size_t, size_t, cmp_t *, void*);
<= div>
--e89a8ffbac03f3034104dd8cd096-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3362 Path: news.gmane.org!not-for-mail From: Rich Felker Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sat, 25 May 2013 12:26:04 -0400 Message-ID: <20130525162604.GY20323@brightrain.aerifal.cx> References: Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1369499178 7971 80.91.229.3 (25 May 2013 16:26:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 25 May 2013 16:26:18 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3366-gllmg-musl=m.gmane.org@lists.openwall.com Sat May 25 18:26:19 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UgHIQ-0004pO-G6 for gllmg-musl@plane.gmane.org; Sat, 25 May 2013 18:26:18 +0200 Original-Received: (qmail 24093 invoked by uid 550); 25 May 2013 16:26:17 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 24082 invoked from network); 25 May 2013 16:26:17 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3362 Archived-At: On Sun, May 26, 2013 at 12:46:17AM +0900, plan9assembler wrote: > Hi, > > i had compile util-linux-2.23 successfully, but when i test mount binary, > it getting segmentation fault. > http://plan9assembler.wordpress.com/2013/05/25/udev-in-x86_64-linux-musl/ Did you get any warnings building it? My best guess, since you're on a 64-bit system, is that mount used some function which returns a pointer without having a prototype in scope, and thus the return value got treated as an int then extended to a pointer via gcc's harmful implicit int-to-pointer conversion. Rich From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3363 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 26 May 2013 06:34:12 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=bcaec5430bde2f1f2004dd91ade3 X-Trace: ger.gmane.org 1369517668 11907 80.91.229.3 (25 May 2013 21:34:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 25 May 2013 21:34:28 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3367-gllmg-musl=m.gmane.org@lists.openwall.com Sat May 25 23:34:30 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UgM6c-0005ak-OB for gllmg-musl@plane.gmane.org; Sat, 25 May 2013 23:34:29 +0200 Original-Received: (qmail 17684 invoked by uid 550); 25 May 2013 21:34:25 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 17671 invoked from network); 25 May 2013 21:34:24 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=iitUIbRIIc81/2fhuemI0jAecUxmsZT9eD5kvGZ7ays=; b=p3dnTnVOxCebAK83H3DSqX+if1D00CyIv6CseiKsVAe2DGXZa5j7mhlfCE0W3CYEHs G2QNY9bw5qMtMe8sS2e6FQ8Nk/2mb3m4COBiV2r7OvHceI4jNVdggIUiIBcPgoDU92dv nStgCeJ3iPWUGfPaMvsflWnRi2GzIzwI+hiJTvpCVanVWPC+obKludjVnR6FXniyo+sN MsSXYXjRQCHRcu1RFkw35X1pgNyHwREl2iXz5vc+6ntO7/eK9UrMUZZtfyf/D8BpHLgK /jVRrMqEBr4vlSz5PFqoLb81sTvxDrPBL21NfiYG6P5Nb+4855+13CDcBb1ts18ZM7dg kBhA== X-Received: by 10.68.60.130 with SMTP id h2mr22878900pbr.208.1369517652383; Sat, 25 May 2013 14:34:12 -0700 (PDT) In-Reply-To: <20130525162604.GY20323@brightrain.aerifal.cx> Xref: news.gmane.org gmane.linux.lib.musl.general:3363 Archived-At: --bcaec5430bde2f1f2004dd91ade3 Content-Type: multipart/alternative; boundary=bcaec5430bde2f1f1b04dd91ade1 --bcaec5430bde2f1f1b04dd91ade1 Content-Type: text/plain; charset=ISO-8859-1 Hi, i attached build log, and i have commented out text-utils/pg.c://#include changed __sighandler_t to sighandler_t fdisks/cfdisk.c:sighandler_t old_SIGINT, old_SIGTERM; On Sun, May 26, 2013 at 1:26 AM, Rich Felker wrote: > On Sun, May 26, 2013 at 12:46:17AM +0900, plan9assembler wrote: > > Hi, > > > > i had compile util-linux-2.23 successfully, but when i test mount binary, > > it getting segmentation fault. > > > http://plan9assembler.wordpress.com/2013/05/25/udev-in-x86_64-linux-musl/ > > Did you get any warnings building it? My best guess, since you're on a > 64-bit system, is that mount used some function which returns a > pointer without having a prototype in scope, and thus the return value > got treated as an int then extended to a pointer via gcc's harmful > implicit int-to-pointer conversion. > > Rich > --bcaec5430bde2f1f1b04dd91ade1 Content-Type: text/html; charset=ISO-8859-1
Hi, i attached build log, and

i have commented out
text-utils/pg.c://#include <sys/termios.h>

changed __sighandler_t to sighandler_t
fdisks/cfdisk.c:sighandler_t old_SIGINT, old_SIGTERM;


On Sun, May 26, 2013 at 1:26 AM, Rich Felker <dalias@aerifal.cx> wrote:
On Sun, May 26, 2013 at 12:46:17AM +0900, plan9assembler wrote:
> Hi,
>
> i had compile util-linux-2.23 successfully, but when i test mount binary,
> it getting segmentation fault.
> http://plan9assembler.wordpress.com/2013/05/25/udev-in-x86_64-linux-musl/

Did you get any warnings building it? My best guess, since you're on a
64-bit system, is that mount used some function which returns a
pointer without having a prototype in scope, and thus the return value
got treated as an int then extended to a pointer via gcc's harmful
implicit int-to-pointer conversion.

Rich

--bcaec5430bde2f1f1b04dd91ade1-- --bcaec5430bde2f1f2004dd91ade3 Content-Type: application/octet-stream; name="build.log" Content-Disposition: attachment; filename="build.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hh5bcvg60 bWFrZSAgYWxsLXJlY3Vyc2l2ZQptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC91dGlsLWxp bnV4LTIuMjMnCk1ha2luZyBhbGwgaW4gcG8KbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAv dXRpbC1saW51eC0yLjIzL3BvJwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yIGBhbGwn LgptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL3V0aWwtbGludXgtMi4yMy9wbycKbWFrZVsy XTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvdXRpbC1saW51eC0yLjIzJwogIENDICAgICAgIGxpYi9s aWJjb21tb25fbGEtYXQubG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLWJsa2Rldi5sbwog IENDICAgICAgIGxpYi9saWJjb21tb25fbGEtY2Fub25pY2FsaXplLmxvCiAgQ0MgICAgICAgbGli L2xpYmNvbW1vbl9sYS1jb2xvcnMubG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLWNyYzMy LmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1lbnYubG8KICBDQyAgICAgICBsaWIvbGli Y29tbW9uX2xhLWZpbGV1dGlscy5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtaXNtb3Vu dGVkLmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1tYW5nbGUubG8KICBDQyAgICAgICBs aWIvbGliY29tbW9uX2xhLW1hdGNoLmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1tYnNh bGlnbi5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtbWQ1LmxvCiAgQ0MgICAgICAgbGli L2xpYmNvbW1vbl9sYS1wYWdlci5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtcGF0aC5s bwpsaWIvcGF0aC5jOjI0MDoxOiB3YXJuaW5nOiBubyBwcmV2aW91cyBwcm90b3R5cGUgZm9yICdw YXRoX3NldF9wcmVmaXgnIFstV21pc3NpbmctcHJvdG90eXBlc10KIHBhdGhfc2V0X3ByZWZpeChj b25zdCBjaGFyICpwcmVmaXgpCiBeCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1wcm9jdXRp bHMubG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLXJhbmR1dGlscy5sbwogIENDICAgICAg IGxpYi9saWJjb21tb25fbGEtc2V0cHJvY3RpdGxlLmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1v bl9sYS1zdHJ1dGlscy5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtc3lzZnMubG8KICBD QyAgICAgICBsaWIvbGliY29tbW9uX2xhLXR0LmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9s YS13aG9sZWRpc2subG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLXR0eXV0aWxzLmxvCiAg Q0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS14Z2V0cGFzcy5sbwogIENDICAgICAgIGxpYi9saWJj b21tb25fbGEtZXhlY19zaGVsbC5sbwpsaWIvZXhlY19zaGVsbC5jOiBJbiBmdW5jdGlvbiAnZXhl Y19zaGVsbCc6CmxpYi9leGVjX3NoZWxsLmM6MjU6Mjogd2FybmluZzogbWlzc2luZyBzZW50aW5l bCBpbiBmdW5jdGlvbiBjYWxsIFstV2Zvcm1hdD1dCiAgZXhlY2woc2hlbGwsIGFyZzAsIE5VTEwp OwogIF4KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLWxpbnV4X3ZlcnNpb24ubG8KICBDQyAg ICAgICBsaWIvbGliY29tbW9uX2xhLWxvb3BkZXYubG8KICBDQ0xEICAgICBsaWJjb21tb24ubGEK ICBDQyAgICAgICBsaWJmZGlzay9zcmMvbGliZmRpc2tfbGEtaW5pdC5sbwogIENDICAgICAgIGxp YmZkaXNrL3NyYy9saWJmZGlza19sYS10ZXN0LmxvCiAgQ0MgICAgICAgbGliZmRpc2svc3JjL2xp YmZkaXNrX2xhLWFzay5sbwogIENDICAgICAgIGxpYmZkaXNrL3NyYy9saWJmZGlza19sYS1hbGln bm1lbnQubG8KICBDQyAgICAgICBsaWJmZGlzay9zcmMvbGliZmRpc2tfbGEtbGFiZWwubG8KICBD QyAgICAgICBsaWJmZGlzay9zcmMvbGliZmRpc2tfbGEtdXRpbHMubG8KICBDQyAgICAgICBsaWJm ZGlzay9zcmMvbGliZmRpc2tfbGEtY29udGV4dC5sbwogIENDICAgICAgIGxpYmZkaXNrL3NyYy9s aWJmZGlza19sYS1wYXJ0dHlwZS5sbwogIENDICAgICAgIGxpYmZkaXNrL3NyYy9saWJmZGlza19s YS1ncHQubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtaW5pdC5sbwogIEND ICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtpZF9sYS1jYWNoZS5sbwogIENDICAgICAgIGxpYmJs a2lkL3NyYy9saWJibGtpZF9sYS1jb25maWcubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGli YmxraWRfbGEtZGV2LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLWRldm5h bWUubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtZGV2bm8ubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtZW5jb2RlLmxvCiAgQ0MgICAgICAgbGliYmxr aWQvc3JjL2xpYmJsa2lkX2xhLWV2YWx1YXRlLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xp YmJsa2lkX2xhLWdldHNpemUubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEt bGxzZWVrLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLXByb2JlLmxvCiAg Q0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLXJlYWQubG8KICBDQyAgICAgICBsaWJi bGtpZC9zcmMvbGliYmxraWRfbGEtcmVzb2x2ZS5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9s aWJibGtpZF9sYS1zYXZlLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLXRh Zy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtpZF9sYS12ZXJpZnkubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtdmVyc2lvbi5sbwogIENDICAgICAgIGxpYmJs a2lkL3NyYy9wYXJ0aXRpb25zL2xpYmJsa2lkX2xhLWFpeC5sbwogIENDICAgICAgIGxpYmJsa2lk L3NyYy9wYXJ0aXRpb25zL2xpYmJsa2lkX2xhLWJzZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3Ny Yy9wYXJ0aXRpb25zL2xpYmJsa2lkX2xhLWRvcy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9w YXJ0aXRpb25zL2xpYmJsa2lkX2xhLWdwdC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9wYXJ0 aXRpb25zL2xpYmJsa2lkX2xhLW1hYy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9wYXJ0aXRp b25zL2xpYmJsa2lkX2xhLW1pbml4LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3BhcnRpdGlv bnMvbGliYmxraWRfbGEtcGFydGl0aW9ucy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9wYXJ0 aXRpb25zL2xpYmJsa2lkX2xhLXNnaS5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9wYXJ0aXRp b25zL2xpYmJsa2lkX2xhLXNvbGFyaXNfeDg2LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3Bh cnRpdGlvbnMvbGliYmxraWRfbGEtc3VuLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3BhcnRp dGlvbnMvbGliYmxraWRfbGEtdWx0cml4LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3BhcnRp dGlvbnMvbGliYmxraWRfbGEtdW5peHdhcmUubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3Vw ZXJibG9ja3MvbGliYmxraWRfbGEtYWRhcHRlY19yYWlkLmxvCiAgQ0MgICAgICAgbGliYmxraWQv c3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWJlZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9z cmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtYmZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3Jj L3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWJ0cmZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3Jj L3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWNyYW1mcy5sbwogIENDICAgICAgIGxpYmJsa2lkL3Ny Yy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1kZGZfcmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lk L3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1kcmJkLmxvCiAgQ0MgICAgICAgbGliYmxraWQv c3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWRyYmRwcm94eV9kYXRhbG9nLmxvCiAgQ0MgICAg ICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWV4ZmF0LmxvCiAgQ0MgICAg ICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWV4dC5sbwogIENDICAgICAg IGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1mMmZzLmxvCiAgQ0MgICAgICAg bGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWdmcy5sbwogIENDICAgICAgIGxp YmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1oZnMubG8KICBDQyAgICAgICBsaWJi bGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtaGlnaHBvaW50X3JhaWQubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtaHBmcy5sbwogIENDICAg ICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1pc285NjYwLmxvCiAgQ0Mg ICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWlzd19yYWlkLmxvCiAg Q0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWpmcy5sbwogIEND ICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1qbWljcm9uX3JhaWQu bG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtbGludXhf cmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1s c2lfcmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9s YS1sdWtzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xh LWx2bS5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1t aW5peC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1u ZXR3YXJlLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xh LW5pbGZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xh LW50ZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEt bnZpZGlhX3JhaWQubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxr aWRfbGEtb2Nmcy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtp ZF9sYS1wcm9taXNlX3JhaWQubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3Mv bGliYmxraWRfbGEtcmVpc2VyZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9j a3MvbGliYmxraWRfbGEtcm9tZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9j a3MvbGliYmxraWRfbGEtc2lsaWNvbl9yYWlkLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1 cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXNxdWFzaGZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3Jj L3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXN1cGVyYmxvY2tzLmxvCiAgQ0MgICAgICAgbGliYmxr aWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXN3YXAubG8KICBDQyAgICAgICBsaWJibGtp ZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtc3lzdi5sbwogIENDICAgICAgIGxpYmJsa2lk L3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS11Ymlmcy5sbwogIENDICAgICAgIGxpYmJsa2lk L3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS11ZGYubG8KICBDQyAgICAgICBsaWJibGtpZC9z cmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtdWZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3Jj L3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXZmYXQubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMv c3VwZXJibG9ja3MvbGliYmxraWRfbGEtdmlhX3JhaWQubG8KICBDQyAgICAgICBsaWJibGtpZC9z cmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtdm1mcy5sbwogIENDICAgICAgIGxpYmJsa2lkL3Ny Yy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS12eGZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3Jj L3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXhmcy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9z dXBlcmJsb2Nrcy9saWJibGtpZF9sYS16ZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvdG9w b2xvZ3kvbGliYmxraWRfbGEtdG9wb2xvZ3kubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvdG9w b2xvZ3kvbGliYmxraWRfbGEtZG0ubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvdG9wb2xvZ3kv bGliYmxraWRfbGEtZXZtcy5sbwpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2luY2x1ZGUvc3lzL2lv Y3RsLmg6NzowLAogICAgICAgICAgICAgICAgIGZyb20gbGliYmxraWQvc3JjL3RvcG9sb2d5L2V2 bXMuYzoxODoKbGliYmxraWQvc3JjL3RvcG9sb2d5L2V2bXMuYzogSW4gZnVuY3Rpb24gJ3Byb2Jl X2V2bXNfdHAnOgpsaWJibGtpZC9zcmMvdG9wb2xvZ3kvZXZtcy5jOjMxOjYwOiB3YXJuaW5nOiBv dmVyZmxvdyBpbiBpbXBsaWNpdCBjb25zdGFudCBjb252ZXJzaW9uIFstV292ZXJmbG93XQogI2Rl ZmluZSBFVk1TX0dFVF9TVFJJUEVfSU5GTyBfSU9SKEVWTVNfTUFKT1IsIDB4RjAsIHN0cnVjdCBl dm1zX3N0cmlwZV9pbmZvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCmxpYmJsa2lkL3NyYy90b3BvbG9neS9ldm1zLmM6NTk6MjA6 IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnRVZNU19HRVRfU1RSSVBFX0lORk8nCiAgaWYg KGlvY3RsKHByLT5mZCwgRVZNU19HRVRfU1RSSVBFX0lORk8sICZldm1zKSkKICAgICAgICAgICAg ICAgICAgICBeCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3RvcG9sb2d5L2xpYmJsa2lkX2xhLWlv Y3RsLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3RvcG9sb2d5L2xpYmJsa2lkX2xhLWx2bS5s bwogIENDICAgICAgIGxpYmJsa2lkL3NyYy90b3BvbG9neS9saWJibGtpZF9sYS1tZC5sbwpJbiBm aWxlIGluY2x1ZGVkIGZyb20gL2luY2x1ZGUvc3lzL2lvY3RsLmg6NzowLAogICAgICAgICAgICAg ICAgIGZyb20gbGliYmxraWQvc3JjL3RvcG9sb2d5L21kLmM6MTg6CmxpYmJsa2lkL3NyYy90b3Bv bG9neS9tZC5jOiBJbiBmdW5jdGlvbiAncHJvYmVfbWRfdHAnOgpsaWJibGtpZC9zcmMvdG9wb2xv Z3kvbWQuYzozMzo2Mjogd2FybmluZzogb3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQgY29u dmVyc2lvbiBbLVdvdmVyZmxvd10KICNkZWZpbmUgR0VUX0FSUkFZX0lORk8gICAgICAgICAgX0lP UiAoTURfTUFKT1IsIDB4MTEsIHN0cnVjdCBtZF9hcnJheV9pbmZvKQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KbGliYmxraWQv c3JjL3RvcG9sb2d5L21kLmM6MTA5OjE2OiBub3RlOiBpbiBleHBhbnNpb24gb2YgbWFjcm8gJ0dF VF9BUlJBWV9JTkZPJwogIGlmIChpb2N0bChmZCwgR0VUX0FSUkFZX0lORk8sICZtZCkpCiAgICAg ICAgICAgICAgICBeCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3RvcG9sb2d5L2xpYmJsa2lkX2xh LXN5c2ZzLmxvCiAgQ0MgICAgICAgbGlidXVpZC9zcmMvbGlidXVpZF9sYS1jbGVhci5sbwogIEND ICAgICAgIGxpYnV1aWQvc3JjL2xpYnV1aWRfbGEtY29tcGFyZS5sbwogIENDICAgICAgIGxpYnV1 aWQvc3JjL2xpYnV1aWRfbGEtY29weS5sbwogIENDICAgICAgIGxpYnV1aWQvc3JjL2xpYnV1aWRf bGEtZ2VuX3V1aWQubG8KICBDQyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlkX2xhLWlzbnVsbC5s bwogIENDICAgICAgIGxpYnV1aWQvc3JjL2xpYnV1aWRfbGEtcGFjay5sbwogIENDICAgICAgIGxp YnV1aWQvc3JjL2xpYnV1aWRfbGEtcGFyc2UubG8KICBDQyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1 dWlkX2xhLXVucGFjay5sbwogIENDICAgICAgIGxpYnV1aWQvc3JjL2xpYnV1aWRfbGEtdW5wYXJz ZS5sbwogIENDICAgICAgIGxpYnV1aWQvc3JjL2xpYnV1aWRfbGEtdXVpZF90aW1lLmxvCiAgQ0Mg ICAgICAgbGliL2xpYnV1aWRfbGEtcmFuZHV0aWxzLmxvCiAgQ0NMRCAgICAgbGlidXVpZC5sYQog IENDTEQgICAgIGxpYmJsa2lkLmxhCmNvcHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2 b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4uLgogIENDTEQgICAgIGxpYmZkaXNrLmxhCiAgQ0MgICAg ICAgbGlibW91bnQvc3JjL2xpYm1vdW50X2xhLWNhY2hlLmxvCiAgQ0MgICAgICAgbGlibW91bnQv c3JjL2xpYm1vdW50X2xhLWNvbnRleHQubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91 bnRfbGEtY29udGV4dF9sb29wZGV2LmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xpYm1vdW50 X2xhLWNvbnRleHRfbW91bnQubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEt Y29udGV4dF91bW91bnQubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtZnMu bG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtaW5pdC5sbwogIENDICAgICAg IGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS1pdGVyLmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3Jj L2xpYm1vdW50X2xhLWxvY2subG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEt b3B0bWFwLmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xpYm1vdW50X2xhLW9wdHN0ci5sbwog IENDICAgICAgIGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS10YWIubG8KICBDQyAgICAgICBsaWJt b3VudC9zcmMvbGlibW91bnRfbGEtdGFiX2RpZmYubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMv bGlibW91bnRfbGEtdGFiX3BhcnNlLmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xpYm1vdW50 X2xhLXRhYl91cGRhdGUubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtdGVz dC5sbwogIENDICAgICAgIGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS11dGlscy5sbwogIENDICAg ICAgIGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS12ZXJzaW9uLmxvCiAgQ0NMRCAgICAgbGlibW91 bnQubGEKICBDQyAgICAgICB0ZXh0LXV0aWxzL21vcmUubwp0ZXh0LXV0aWxzL21vcmUuYzogSW4g ZnVuY3Rpb24gJ21haW4nOgp0ZXh0LXV0aWxzL21vcmUuYzozNDI6Njogd2FybmluZzogdmFyaWFi bGUgJ2xlZnQnIG1pZ2h0IGJlIGNsb2JiZXJlZCBieSAnbG9uZ2ptcCcgb3IgJ3Zmb3JrJyBbLVdj bG9iYmVyZWRdCiAgaW50IGxlZnQ7CiAgICAgIF4KdGV4dC11dGlscy9tb3JlLmM6MzQzOjY6IHdh cm5pbmc6IHZhcmlhYmxlICdwcm5hbWVzJyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgJ2xvbmdqbXAn IG9yICd2Zm9yaycgWy1XY2xvYmJlcmVkXQogIGludCBwcm5hbWVzID0gMDsKICAgICAgXgp0ZXh0 LXV0aWxzL21vcmUuYzozNDQ6Njogd2FybmluZzogdmFyaWFibGUgJ2luaXRvcHQnIG1pZ2h0IGJl IGNsb2JiZXJlZCBieSAnbG9uZ2ptcCcgb3IgJ3Zmb3JrJyBbLVdjbG9iYmVyZWRdCiAgaW50IGlu aXRvcHQgPSAwOwogICAgICBeCnRleHQtdXRpbHMvbW9yZS5jOjM0NTo2OiB3YXJuaW5nOiB2YXJp YWJsZSAnc3JjaG9wdCcgbWlnaHQgYmUgY2xvYmJlcmVkIGJ5ICdsb25nam1wJyBvciAndmZvcmsn IFstV2Nsb2JiZXJlZF0KICBpbnQgc3JjaG9wdCA9IDA7CiAgICAgIF4KdGV4dC11dGlscy9tb3Jl LmM6MzQ4Ojg6IHdhcm5pbmc6IHZhcmlhYmxlICdpbml0YnVmJyBtaWdodCBiZSBjbG9iYmVyZWQg YnkgJ2xvbmdqbXAnIG9yICd2Zm9yaycgWy1XY2xvYmJlcmVkXQogIGNoYXIgKmluaXRidWYgPSBO VUxMOwogICAgICAgIF4KICBDQ0xEICAgICBtb3JlCiAgQ0MgICAgICAgc3lzLXV0aWxzL2RtZXNn Lm8KICBDQ0xEICAgICBkbWVzZwogIENDICAgICAgIHN5cy11dGlscy9tb3VudC1tb3VudC5vCiAg Q0NMRCAgICAgbW91bnQKICBDQyAgICAgICBzeXMtdXRpbHMvdW1vdW50LXVtb3VudC5vCiAgQ0NM RCAgICAgdW1vdW50CiAgQ0MgICAgICAgc3lzLXV0aWxzL3dkY3RsLm8KICBDQ0xEICAgICB3ZGN0 bAogIENDICAgICAgIHN5cy11dGlscy9tb3VudHBvaW50LW1vdW50cG9pbnQubwogIENDTEQgICAg IG1vdW50cG9pbnQKICBDQyAgICAgICBtaXNjLXV0aWxzL2xzYmxrLWxzYmxrLm8KICBDQ0xEICAg ICBsc2JsawogIENDICAgICAgIG1pc2MtdXRpbHMvZmluZG1udC1maW5kbW50Lm8KbWlzYy11dGls cy9maW5kbW50LmM6IEluIGZ1bmN0aW9uICdnZXRfdGFnJzoKbWlzYy11dGlscy9maW5kbW50LmM6 NDEzOjc1OiB3YXJuaW5nOiB1bnVzZWQgcGFyYW1ldGVyICdjb2wnIFstV3VudXNlZC1wYXJhbWV0 ZXJdCiBzdGF0aWMgY29uc3QgY2hhciAqZ2V0X3RhZyhzdHJ1Y3QgbGlibW50X2ZzICpmcywgY29u c3QgY2hhciAqdGFnbmFtZSwgaW50IGNvbCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogIENDTEQgICAg IGZpbmRtbnQKICBDQyAgICAgICBtaXNjLXV0aWxzL2tpbGwubwogIENDTEQgICAgIGtpbGwKICBD QyAgICAgICB0ZXJtLXV0aWxzL2FnZXR0eS5vCiAgQ0NMRCAgICAgYWdldHR5CiAgQ0MgICAgICAg c3lzLXV0aWxzL2N0cmxhbHRkZWwubwogIENDTEQgICAgIGN0cmxhbHRkZWwKICBDQyAgICAgICBz eXMtdXRpbHMvZnNmcmVlemUubwpzeXMtdXRpbHMvZnNmcmVlemUuYzogSW4gZnVuY3Rpb24gJ2Zy ZWV6ZV9mJzoKc3lzLXV0aWxzL2ZzZnJlZXplLmM6Mzg6Mjogd2FybmluZzogb3ZlcmZsb3cgaW4g aW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lvbiBbLVdvdmVyZmxvd10KICByZXR1cm4gaW9jdGwo ZmQsIEZJRlJFRVpFLCAwKTsKICBeCnN5cy11dGlscy9mc2ZyZWV6ZS5jOiBJbiBmdW5jdGlvbiAn dW5mcmVlemVfZic6CnN5cy11dGlscy9mc2ZyZWV6ZS5jOjQzOjI6IHdhcm5pbmc6IG92ZXJmbG93 IGluIGltcGxpY2l0IGNvbnN0YW50IGNvbnZlcnNpb24gWy1Xb3ZlcmZsb3ddCiAgcmV0dXJuIGlv Y3RsKGZkLCBGSVRIQVcsIDApOwogIF4KICBDQ0xEICAgICBmc2ZyZWV6ZQogIENDICAgICAgIHN5 cy11dGlscy9mc3RyaW0ubwogIENDTEQgICAgIGZzdHJpbQogIENDICAgICAgIHN5cy11dGlscy9i bGtkaXNjYXJkLm8KICBDQ0xEICAgICBibGtkaXNjYXJkCiAgQ0MgICAgICAgc3lzLXV0aWxzL2xv c2V0dXAubwpzeXMtdXRpbHMvbG9zZXR1cC5jOiBJbiBmdW5jdGlvbiAncHJpbnRmX2xvb3BkZXYn OgpzeXMtdXRpbHMvbG9zZXR1cC5jOjEzOTozOiB3YXJuaW5nOiBmb3JtYXQgJyVsdScgZXhwZWN0 cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhh cyB0eXBlICdpbm9fdCcgWy1XZm9ybWF0PV0KICAgbG9vcGN4dF9nZXRfZGV2aWNlKGxjKSwgKGlu dCkgZGV2LCBpbm8sIGZuYW1lKTsKICAgXgpzeXMtdXRpbHMvbG9zZXR1cC5jOiBJbiBmdW5jdGlv biAnc2V0X3R0X2RhdGEnOgpzeXMtdXRpbHMvbG9zZXR1cC5jOjI2OTo1OiB3YXJuaW5nOiBmb3Jt YXQgJyVqdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICd1aW50bWF4X3QnLCBidXQgYXJndW1l bnQgMyBoYXMgdHlwZSAnaW5vX3QnIFstV2Zvcm1hdD1dCiAgICAgeGFzcHJpbnRmKCZucCwgIiVq dSIsIGlubyk7CiAgICAgXgogIENDTEQgICAgIGxvc2V0dXAKICBDQyAgICAgICBzeXMtdXRpbHMv c3dhcG9uLXN3YXBvbi5vCiAgQ0MgICAgICAgc3lzLXV0aWxzL3N3YXBvbi1zd2Fwb24tY29tbW9u Lm8KICBDQ0xEICAgICBzd2Fwb24KICBDQyAgICAgICBzeXMtdXRpbHMvc3dhcG9mZi1zd2Fwb2Zm Lm8KICBDQyAgICAgICBzeXMtdXRpbHMvc3dhcG9mZi1zd2Fwb24tY29tbW9uLm8KICBDQ0xEICAg ICBzd2Fwb2ZmCiAgQ0MgICAgICAgc3lzLXV0aWxzL3Bpdm90X3Jvb3QubwogIENDTEQgICAgIHBp dm90X3Jvb3QKICBDQyAgICAgICBzeXMtdXRpbHMvc3dpdGNoX3Jvb3QubwogIENDTEQgICAgIHN3 aXRjaF9yb290CiAgQ0MgICAgICAgc3lzLXV0aWxzL2h3Y2xvY2subwpzeXMtdXRpbHMvaHdjbG9j ay5jOiBJbiBmdW5jdGlvbiAnc2V0X3N5c3RlbV9jbG9jayc6CnN5cy11dGlscy9od2Nsb2NrLmM6 NzQ4OjQ6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnc2V0dGltZW9mZGF5JyBkaXNj YXJkcyAnY29uc3QnIHF1YWxpZmllciBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUgW2VuYWJsZWQg YnkgZGVmYXVsdF0KICAgIHJjID0gc2V0dGltZW9mZGF5KCZ0diwgJnR6KTsKICAgIF4KSW4gZmls ZSBpbmNsdWRlZCBmcm9tIHN5cy11dGlscy9od2Nsb2NrLmM6Njk6MDoKL2luY2x1ZGUvc3lzL3Rp bWUuaDozNjo1OiBub3RlOiBleHBlY3RlZCAndm9pZCAqJyBidXQgYXJndW1lbnQgaXMgb2YgdHlw ZSAnY29uc3Qgc3RydWN0IHRpbWV6b25lIConCiBpbnQgc2V0dGltZW9mZGF5IChjb25zdCBzdHJ1 Y3QgdGltZXZhbCAqLCB2b2lkICopOwogICAgIF4Kc3lzLXV0aWxzL2h3Y2xvY2suYzogSW4gZnVu Y3Rpb24gJ3NldF9zeXN0ZW1fY2xvY2tfdGltZXpvbmUnOgpzeXMtdXRpbHMvaHdjbG9jay5jOjgz ODo0OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldHRpbWVvZmRheScgZGlzY2Fy ZHMgJ2NvbnN0JyBxdWFsaWZpZXIgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlIFtlbmFibGVkIGJ5 IGRlZmF1bHRdCiAgICByYyA9IHNldHRpbWVvZmRheSh0dl9udWxsLCAmdHpfdXRjKTsKICAgIF4K SW4gZmlsZSBpbmNsdWRlZCBmcm9tIHN5cy11dGlscy9od2Nsb2NrLmM6Njk6MDoKL2luY2x1ZGUv c3lzL3RpbWUuaDozNjo1OiBub3RlOiBleHBlY3RlZCAndm9pZCAqJyBidXQgYXJndW1lbnQgaXMg b2YgdHlwZSAnY29uc3Qgc3RydWN0IHRpbWV6b25lIConCiBpbnQgc2V0dGltZW9mZGF5IChjb25z dCBzdHJ1Y3QgdGltZXZhbCAqLCB2b2lkICopOwogICAgIF4Kc3lzLXV0aWxzL2h3Y2xvY2suYzo4 NDM6NDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdzZXR0aW1lb2ZkYXknIGRpc2Nh cmRzICdjb25zdCcgcXVhbGlmaWVyIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZSBbZW5hYmxlZCBi eSBkZWZhdWx0XQogICAgcmMgPSBzZXR0aW1lb2ZkYXkodHZfbnVsbCwgJnR6KTsKICAgIF4KSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIHN5cy11dGlscy9od2Nsb2NrLmM6Njk6MDoKL2luY2x1ZGUvc3lz L3RpbWUuaDozNjo1OiBub3RlOiBleHBlY3RlZCAndm9pZCAqJyBidXQgYXJndW1lbnQgaXMgb2Yg dHlwZSAnY29uc3Qgc3RydWN0IHRpbWV6b25lIConCiBpbnQgc2V0dGltZW9mZGF5IChjb25zdCBz dHJ1Y3QgdGltZXZhbCAqLCB2b2lkICopOwogICAgIF4KICBDQyAgICAgICBzeXMtdXRpbHMvaHdj bG9jay1jbW9zLm8KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHN5cy11dGlscy9od2Nsb2NrLWNtb3Mu Yzo5NjowOgpzeXMtdXRpbHMvaHdjbG9jay5oOjMwOjU5OiB3YXJuaW5nOiAnc3RydWN0IHRpbWV2 YWwnIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbZW5hYmxlZCBieSBkZWZhdWx0XQog ZXh0ZXJuIGRvdWJsZSB0aW1lX2RpZmYoc3RydWN0IHRpbWV2YWwgc3VidHJhaGVuZCwgc3RydWN0 IHRpbWV2YWwgc3VidHJhY3Rvcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgpzeXMtdXRpbHMvaHdjbG9jay5oOjMwOjU5OiB3YXJu aW5nOiBpdHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24sIHdo aWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFtlbmFibGVkIGJ5IGRlZmF1bHRdCiAg Q0MgICAgICAgc3lzLXV0aWxzL2h3Y2xvY2sta2QubwpJbiBmaWxlIGluY2x1ZGVkIGZyb20gc3lz LXV0aWxzL2h3Y2xvY2sta2QuYzo0OjA6CnN5cy11dGlscy9od2Nsb2NrLmg6MzA6NTk6IHdhcm5p bmc6ICdzdHJ1Y3QgdGltZXZhbCcgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFtlbmFi bGVkIGJ5IGRlZmF1bHRdCiBleHRlcm4gZG91YmxlIHRpbWVfZGlmZihzdHJ1Y3QgdGltZXZhbCBz dWJ0cmFoZW5kLCBzdHJ1Y3QgdGltZXZhbCBzdWJ0cmFjdG9yKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCnN5cy11dGlscy9od2Ns b2NrLmg6MzA6NTk6IHdhcm5pbmc6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBv ciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQgW2VuYWJs ZWQgYnkgZGVmYXVsdF0KICBDQyAgICAgICBzeXMtdXRpbHMvaHdjbG9jay1ydGMubwpJbiBmaWxl IGluY2x1ZGVkIGZyb20gL2luY2x1ZGUvc3lzL2lvY3RsLmg6NzowLAogICAgICAgICAgICAgICAg IGZyb20gc3lzLXV0aWxzL2h3Y2xvY2stcnRjLmM6MTA6CnN5cy11dGlscy9od2Nsb2NrLXJ0Yy5j OiBJbiBmdW5jdGlvbiAnZG9fcnRjX3JlYWRfaW9jdGwnOgpzeXMtdXRpbHMvaHdjbG9jay1ydGMu Yzo4Njo0NTogd2FybmluZzogb3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lv biBbLVdvdmVyZmxvd10KICMgZGVmaW5lIFJUQ19SRF9USU1FIF9JT1IoJ3AnLCAweDA5LCBzdHJ1 Y3QgbGludXhfcnRjX3RpbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4Kc3lzLXV0aWxzL2h3Y2xvY2stcnRjLmM6MTkyOjIyOiBub3RlOiBpbiBleHBhbnNp b24gb2YgbWFjcm8gJ1JUQ19SRF9USU1FJwogICByYyA9IGlvY3RsKHJ0Y19mZCwgUlRDX1JEX1RJ TUUsIHRtKTsKICAgICAgICAgICAgICAgICAgICAgIF4Kc3lzLXV0aWxzL2h3Y2xvY2stcnRjLmM6 IEluIGZ1bmN0aW9uICdnZXRfZXBvY2hfcnRjJzoKc3lzLXV0aWxzL2h3Y2xvY2stcnRjLmM6NDQw OjI6IHdhcm5pbmc6IG92ZXJmbG93IGluIGltcGxpY2l0IGNvbnN0YW50IGNvbnZlcnNpb24gWy1X b3ZlcmZsb3ddCiAgaWYgKGlvY3RsKHJ0Y19mZCwgUlRDX0VQT0NIX1JFQUQsIGVwb2NoX3ApID09 IC0xKSB7CiAgXgogIENDTEQgICAgIGh3Y2xvY2sKICBDQyAgICAgICBtaXNjLXV0aWxzL2Jsa2lk LWJsa2lkLm8KICBDQ0xEICAgICBibGtpZAogIENDICAgICAgIG1pc2MtdXRpbHMvZmluZGZzLWZp bmRmcy5vCiAgQ0NMRCAgICAgZmluZGZzCiAgQ0MgICAgICAgbWlzYy11dGlscy93aXBlZnMtd2lw ZWZzLm8KICBDQ0xEICAgICB3aXBlZnMKICBDQyAgICAgICBkaXNrLXV0aWxzL2ZzY2subWluaXgu bwpkaXNrLXV0aWxzL2ZzY2subWluaXguYzogSW4gZnVuY3Rpb24gJ2NoZWNrX2ZpbGUyJzoKZGlz ay11dGlscy9mc2NrLm1pbml4LmM6MTA1MToxMTogd2FybmluZzogZm9ybWF0ICclanUnIGV4cGVj dHMgYXJndW1lbnQgb2YgdHlwZSAndWludG1heF90JywgYnV0IGFyZ3VtZW50IDIgaGFzIHR5cGUg J2lub190JyBbLVdmb3JtYXQ9XQogICAgICAgICAgIGlub2RlLT5pX25saW5rcyk7CiAgICAgICAg ICAgXgogIENDTEQgICAgIGZzY2subWluaXgKICBDQyAgICAgICBkaXNrLXV0aWxzL21rZnMubWlu aXgubwogIENDTEQgICAgIG1rZnMubWluaXgKICBDQyAgICAgICBkaXNrLXV0aWxzL21rZnMubwog IENDTEQgICAgIG1rZnMKICBDQyAgICAgICBkaXNrLXV0aWxzL21rZnMuYmZzLm8KICBDQ0xEICAg ICBta2ZzLmJmcwogIENDICAgICAgIGRpc2stdXRpbHMvbWtzd2FwLW1rc3dhcC5vCiAgQ0NMRCAg ICAgbWtzd2FwCiAgQ0MgICAgICAgZGlzay11dGlscy9zd2FwbGFiZWwtc3dhcGxhYmVsLm8KICBD Q0xEICAgICBzd2FwbGFiZWwKICBDQyAgICAgICBkaXNrLXV0aWxzL2ZzY2stZnNjay5vCiAgQ0NM RCAgICAgZnNjawogIENDICAgICAgIGRpc2stdXRpbHMvcmF3Lm8KICBDQ0xEICAgICByYXcKICBD QyAgICAgICBkaXNrLXV0aWxzL2ZzY2suY3JhbWZzLm8KICBDQyAgICAgICBkaXNrLXV0aWxzL2Ny YW1mc19jb21tb24ubwogIENDTEQgICAgIGZzY2suY3JhbWZzCiAgQ0MgICAgICAgZGlzay11dGls cy9ta2ZzLmNyYW1mcy5vCiAgQ0NMRCAgICAgbWtmcy5jcmFtZnMKICBDQyAgICAgICBkaXNrLXV0 aWxzL2Jsb2NrZGV2Lm8KZGlzay11dGlscy9ibG9ja2Rldi5jOiBJbiBmdW5jdGlvbiAncmVwb3J0 X2RldmljZSc6CmRpc2stdXRpbHMvYmxvY2tkZXYuYzo0NTM6Njogd2FybmluZzogb3ZlcmZsb3cg aW4gaW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lvbiBbLVdvdmVyZmxvd10KICAgICAgaW9jdGwo ZmQsIEJMS0JTWkdFVCwgJmJzeikgPT0gMCAmJgogICAgICBeCiAgQ0NMRCAgICAgYmxvY2tkZXYK ICBDQyAgICAgICBmZGlza3MvZmRpc2stZmRpc2subwogIENDICAgICAgIGZkaXNrcy9mZGlzay1m ZGlzay1hc2subwogIENDICAgICAgIGZkaXNrcy9mZGlzay1mZGlza2JzZGxhYmVsLm8KICBDQyAg ICAgICBmZGlza3MvZmRpc2stZmRpc2tkb3NsYWJlbC5vCiAgQ0MgICAgICAgZmRpc2tzL2ZkaXNr LWZkaXNrbWFjbGFiZWwubwogIENDICAgICAgIGZkaXNrcy9mZGlzay1mZGlza3NnaWxhYmVsLm8K ICBDQyAgICAgICBmZGlza3MvZmRpc2stZmRpc2tzdW5sYWJlbC5vCmZkaXNrcy9mZGlza3N1bmxh YmVsLmM6IEluIGZ1bmN0aW9uICdzdW5fdmVyaWZ5X2Rpc2tsYWJlbCc6CmZkaXNrcy9mZGlza3N1 bmxhYmVsLmM6NDU0OjQ6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgNCBvZiAncXNvcnRfcicg ZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIFtlbmFibGVkIGJ5IGRlZmF1bHRdCiAgICB2 ZXJpZnlfc3VuX3N0YXJ0cyk7CiAgICBeCkluIGZpbGUgaW5jbHVkZWQgZnJvbSBmZGlza3MvZmRp c2tzdW5sYWJlbC5jOjE0OjA6Ci9pbmNsdWRlL3N0ZGxpYi5oOjU2OjY6IG5vdGU6IGV4cGVjdGVk ICdpbnQgKCopKHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopJyBidXQgYXJndW1l bnQgaXMgb2YgdHlwZSAnaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0IHZvaWQgKiwgdm9pZCAq KScKIHZvaWQgcXNvcnRfciAodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgY21wX3QgKiwgdm9pZCAq KTsKICAgICAgXgogIENDICAgICAgIGZkaXNrcy9mZGlzay1wYXJ0bmFtZS5vCiAgQ0NMRCAgICAg ZmRpc2sKICBDQyAgICAgICBmZGlza3MvcGFydG5hbWUubwogIENDICAgICAgIGZkaXNrcy9zZmRp c2subwogIENDTEQgICAgIHNmZGlzawogIENDICAgICAgIGZkaXNrcy9jZmRpc2stY2ZkaXNrLm8K ZmRpc2tzL2NmZGlzay5jOiBJbiBmdW5jdGlvbiAnZ2V0X3N0cmluZyc6CmZkaXNrcy9jZmRpc2su Yzo0NTY6Mjogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldF93 Y2gnIFstV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIGlmIChnZXRfd2NoKCZjKSA9 PSBFUlIpIHsKICBeCiAgQ0NMRCAgICAgY2ZkaXNrCiAgQ0MgICAgICAgc2NoZWR1dGlscy9jaHJ0 Lm8KICBDQ0xEICAgICBjaHJ0CiAgQ0MgICAgICAgc2NoZWR1dGlscy9pb25pY2UubwogIENDTEQg ICAgIGlvbmljZQogIENDICAgICAgIHRleHQtdXRpbHMvY29sLm8KICBDQ0xEICAgICBjb2wKICBD QyAgICAgICB0ZXh0LXV0aWxzL2NvbGNydC5vCiAgQ0NMRCAgICAgY29sY3J0CiAgQ0MgICAgICAg dGV4dC11dGlscy9jb2xybS5vCiAgQ0NMRCAgICAgY29scm0KICBDQyAgICAgICB0ZXh0LXV0aWxz L2NvbHVtbi5vCiAgQ0NMRCAgICAgY29sdW1uCiAgQ0MgICAgICAgdGV4dC11dGlscy9jb252Lm8K ICBDQyAgICAgICB0ZXh0LXV0aWxzL2Rpc3BsYXkubwogIENDICAgICAgIHRleHQtdXRpbHMvaGV4 ZHVtcC5vCiAgQ0MgICAgICAgdGV4dC11dGlscy9oZXhzeW50YXgubwogIENDICAgICAgIHRleHQt dXRpbHMvcGFyc2UubwogIENDTEQgICAgIGhleGR1bXAKICBDQyAgICAgICB0ZXh0LXV0aWxzL3Jl di5vCiAgQ0NMRCAgICAgcmV2CiAgQ0MgICAgICAgdGV4dC11dGlscy90YWlsZi5vCiAgQ0NMRCAg ICAgdGFpbGYKICBDQyAgICAgICB0ZXh0LXV0aWxzL3BnLm8KdGV4dC11dGlscy9wZy5jOiBJbiBm dW5jdGlvbiAncGdmaWxlJzoKdGV4dC11dGlscy9wZy5jOjEzNTI6MTM6IHdhcm5pbmc6IG1pc3Np bmcgc2VudGluZWwgaW4gZnVuY3Rpb24gY2FsbCBbLVdmb3JtYXQ9XQogICAgICAgICAgICAgY21k LmNtZGxpbmUgKyAxLCBOVUxMKTsKICAgICAgICAgICAgIF4KdGV4dC11dGlscy9wZy5jOjg4MDoy MTogd2FybmluZzogdmFyaWFibGUgJ2Zwb3MnIG1pZ2h0IGJlIGNsb2JiZXJlZCBieSAnbG9uZ2pt cCcgb3IgJ3Zmb3JrJyBbLVdjbG9iYmVyZWRdCiAgb2ZmX3QgcG9zLCBvbGRwb3MsIGZwb3M7CiAg ICAgICAgICAgICAgICAgICAgIF4KdGV4dC11dGlscy9wZy5jOjg5MToxMTogd2FybmluZzogdmFy aWFibGUgJ3NlYXJjaGNvdW50JyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgJ2xvbmdqbXAnIG9yICd2 Zm9yaycgWy1XY2xvYmJlcmVkXQogIHVuc2lnbmVkIHNlYXJjaGNvdW50ID0gMDsKICAgICAgICAg ICBeCnRleHQtdXRpbHMvcGcuYzo4OTc6Njogd2FybmluZzogdmFyaWFibGUgJ25vYnVmJyBtaWdo dCBiZSBjbG9iYmVyZWQgYnkgJ2xvbmdqbXAnIG9yICd2Zm9yaycgWy1XY2xvYmJlcmVkXQogIGlu dCBub2J1ZiA9IDA7CiAgICAgIF4KICBDQ0xEICAgICBwZwogIENDICAgICAgIHRleHQtdXRpbHMv dWwubwogIENDTEQgICAgIHVsCiAgQ0MgICAgICAgdGVybS11dGlscy9zY3JpcHQubwogIENDTEQg ICAgIHNjcmlwdAogIENDICAgICAgIHRlcm0tdXRpbHMvc2NyaXB0cmVwbGF5Lm8KICBDQ0xEICAg ICBzY3JpcHRyZXBsYXkKICBDQyAgICAgICB0ZXJtLXV0aWxzL3NldHRlcm0ubwogIENDTEQgICAg IHNldHRlcm0KICBDQyAgICAgICB0ZXJtLXV0aWxzL3dhbGwtd2FsbC5vCiAgQ0MgICAgICAgdGVy bS11dGlscy93YWxsLXR0eW1zZy5vCiAgQ0NMRCAgICAgd2FsbAogIENDICAgICAgIHN5cy11dGls cy9mbG9jay5vCiAgQ0NMRCAgICAgZmxvY2sKICBDQyAgICAgICBzeXMtdXRpbHMvaXBjbWsubwog IENDTEQgICAgIGlwY21rCiAgQ0MgICAgICAgc3lzLXV0aWxzL2lwY3JtLm8KICBDQ0xEICAgICBp cGNybQogIENDICAgICAgIHN5cy11dGlscy9pcGNzLm8KICBDQyAgICAgICBzeXMtdXRpbHMvaXBj dXRpbHMubwogIENDTEQgICAgIGlwY3MKICBDQyAgICAgICBzeXMtdXRpbHMvcmVuaWNlLm8KICBD Q0xEICAgICByZW5pY2UKICBDQyAgICAgICBzeXMtdXRpbHMvc2V0c2lkLm8KICBDQ0xEICAgICBz ZXRzaWQKICBDQyAgICAgICBzeXMtdXRpbHMvY3l0dW5lLm8KICBDQ0xEICAgICBjeXR1bmUKICBD QyAgICAgICBzeXMtdXRpbHMvc2V0YXJjaC5vCiAgQ0NMRCAgICAgc2V0YXJjaAogIENDICAgICAg IHN5cy11dGlscy9wcmxpbWl0Lm8Kc3lzLXV0aWxzL3BybGltaXQuYzogSW4gZnVuY3Rpb24gJ2Rv X3BybGltaXQnOgpzeXMtdXRpbHMvcHJsaW1pdC5jOjM1Njo1OiB3YXJuaW5nOiBmb3JtYXQgJyVq dScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICd1aW50bWF4X3QnLCBidXQgYXJndW1lbnQgMiBo YXMgdHlwZSAncmxpbV90JyBbLVdmb3JtYXQ9XQogICAgIHByaW50ZigiPCVqdSIsIG5ldy0+cmxp bV9jdXIpOwogICAgIF4Kc3lzLXV0aWxzL3BybGltaXQuYzozNjE6NTogd2FybmluZzogZm9ybWF0 ICclanUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAndWludG1heF90JywgYnV0IGFyZ3VtZW50 IDIgaGFzIHR5cGUgJ3JsaW1fdCcgWy1XZm9ybWF0PV0KICAgICBwcmludGYoIjolanU+XG4iLCBu ZXctPnJsaW1fbWF4KTsKICAgICBeCiAgQ0NMRCAgICAgcHJsaW1pdAogIENDICAgICAgIHN5cy11 dGlscy9mYWxsb2NhdGUubwogIENDTEQgICAgIGZhbGxvY2F0ZQogIENDICAgICAgIHN5cy11dGls cy91bnNoYXJlLm8KICBDQ0xEICAgICB1bnNoYXJlCiAgQ0MgICAgICAgc3lzLXV0aWxzL25zZW50 ZXIubwogIENDTEQgICAgIG5zZW50ZXIKICBDQyAgICAgICBtaXNjLXV0aWxzL2NhbC5vCiAgQ0Mg ICAgICAgbGliL21ic2FsaWduLm8KICBDQyAgICAgICBsaWIvc3RydXRpbHMubwogIENDTEQgICAg IGNhbAogIENDICAgICAgIG1pc2MtdXRpbHMvbG9nZ2VyLm8KICBDQ0xEICAgICBsb2dnZXIKICBD QyAgICAgICBtaXNjLXV0aWxzL2xvb2subwogIENDTEQgICAgIGxvb2sKICBDQyAgICAgICBtaXNj LXV0aWxzL21jb29raWUubwogIENDICAgICAgIGxpYi9tZDUubwogIENDTEQgICAgIG1jb29raWUK ICBDQyAgICAgICBtaXNjLXV0aWxzL25hbWVpLm8KICBDQ0xEICAgICBuYW1laQogIENDICAgICAg IG1pc2MtdXRpbHMvd2hlcmVpcy5vCiAgQ0NMRCAgICAgd2hlcmVpcwogIENDICAgICAgIG1pc2Mt dXRpbHMvbHNsb2Nrcy1sc2xvY2tzLm8KbWlzYy11dGlscy9sc2xvY2tzLmM6IEluIGZ1bmN0aW9u ICdnZXRfZGV2X2lub2RlJzoKbWlzYy11dGlscy9sc2xvY2tzLmM6MjIyOjI6IHdhcm5pbmc6IGZv cm1hdCAnJWp1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ3VpbnRtYXhfdCAqJywgYnV0IGFy Z3VtZW50IDUgaGFzIHR5cGUgJ2lub190IConIFstV2Zvcm1hdD1dCiAgc3NjYW5mKHN0ciwgIiUw Mng6JTAyeDolanUiLCAmbWFqLCAmbWluLCAmaW51bSk7CiAgXgogIENDTEQgICAgIGxzbG9ja3MK ICBDQyAgICAgICBtaXNjLXV0aWxzL3V1aWRnZW4tdXVpZGdlbi5vCiAgQ0NMRCAgICAgdXVpZGdl bgogIENDICAgICAgIG1pc2MtdXRpbHMvcmVuYW1lLm8KICBDQ0xEICAgICByZW5hbWUKICBDQyAg ICAgICBtaXNjLXV0aWxzL2dldG9wdC5vCiAgQ0NMRCAgICAgZ2V0b3B0CiAgQ0MgICAgICAgZGlz ay11dGlscy9pc29zaXplLm8KICBDQ0xEICAgICBpc29zaXplCiAgQ0MgICAgICAgc3lzLXV0aWxz L3JlYWRwcm9maWxlLm8KICBDQ0xEICAgICByZWFkcHJvZmlsZQogIENDICAgICAgIHN5cy11dGls cy9sZGF0dGFjaC5vCiAgQ0NMRCAgICAgbGRhdHRhY2gKICBDQyAgICAgICBzeXMtdXRpbHMvcnRj d2FrZS5vCiAgQ0NMRCAgICAgcnRjd2FrZQogIENDICAgICAgIG1pc2MtdXRpbHMvdXVpZGQtdXVp ZGQubwogIENDTEQgICAgIHV1aWRkCiAgQ0MgICAgICAgZGlzay11dGlscy9mZGZvcm1hdC5vCiAg Q0NMRCAgICAgZmRmb3JtYXQKICBDQyAgICAgICBkaXNrLXV0aWxzL3BhcnR4LXBhcnR4Lm8KICBD Q0xEICAgICBwYXJ0eAogIENDICAgICAgIGRpc2stdXRpbHMvYWRkcGFydC5vCiAgQ0NMRCAgICAg YWRkcGFydAogIENDICAgICAgIGRpc2stdXRpbHMvZGVscGFydC5vCiAgQ0NMRCAgICAgZGVscGFy dAogIENDICAgICAgIGRpc2stdXRpbHMvcmVzaXplcGFydC5vCiAgQ0NMRCAgICAgcmVzaXplcGFy dAogIEdFTiAgICAgIG1pc2MtdXRpbHMvdXVpZGQuOAogIEdFTiAgICAgIHN5cy11dGlscy9saW51 eDMyLjgKICBHRU4gICAgICBzeXMtdXRpbHMvbGludXg2NC44CiAgR0VOICAgICAgc3lzLXV0aWxz L2kzODYuOAogIEdFTiAgICAgIHN5cy11dGlscy94ODZfNjQuOAogIEdFTiAgICAgIGxpYnV1aWQv dXVpZC5wYwogIEdFTiAgICAgIGxpYmJsa2lkL2Jsa2lkLnBjCiAgR0VOICAgICAgbGlibW91bnQv bW91bnQucGMKbWFrZVsyXTogTGVhdmluZyBkaXJlY3RvcnkgYC91dGlsLWxpbnV4LTIuMjMnCm1h a2VbMV06IExlYXZpbmcgZGlyZWN0b3J5IGAvdXRpbC1saW51eC0yLjIzJwo= --bcaec5430bde2f1f2004dd91ade3-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3364 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 26 May 2013 11:14:32 +0200 Message-ID: <20130526091432.GE31915@port70.net> References: <20130525162604.GY20323@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1369559686 16607 80.91.229.3 (26 May 2013 09:14:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 May 2013 09:14:46 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3368-gllmg-musl=m.gmane.org@lists.openwall.com Sun May 26 11:14:47 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UgX2L-0003px-PP for gllmg-musl@plane.gmane.org; Sun, 26 May 2013 11:14:45 +0200 Original-Received: (qmail 21802 invoked by uid 550); 26 May 2013 09:14:44 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 21791 invoked from network); 26 May 2013 09:14:43 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3364 Archived-At: * plan9assembler [2013-05-26 06:34:12 +0900]: > Hi, i attached build log, and there were some minor musl issues: _IOR macro for ioctl should use 2U<<30 instead of 2<<30 settimeofday should follow the bsd declaration x86_64 posix types should be long instead of long long (glibc is not entirely consistent on x86_64: the types in user.h use long long) (i can prepare patches for these) your qsort_r seem to have the wrong prototype (does not match cmp_t) there are some other problems as well, i'm not sure which one trips mount, maybe you should recompile musl and util-linux with -O0 -g3 and get a backtrace from the crash From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3365 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 26 May 2013 20:22:49 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b15b0d794b83904dd9d4088 X-Trace: ger.gmane.org 1369567382 17698 80.91.229.3 (26 May 2013 11:23:02 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 26 May 2013 11:23:02 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3369-gllmg-musl=m.gmane.org@lists.openwall.com Sun May 26 13:23:03 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UgZ2V-0007wI-6o for gllmg-musl@plane.gmane.org; Sun, 26 May 2013 13:23:03 +0200 Original-Received: (qmail 24181 invoked by uid 550); 26 May 2013 11:23:02 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 24173 invoked from network); 26 May 2013 11:23:02 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=fvpqvNFfcmXZWo2CryE5QHW2Uz1R8emml5vUQEymey4=; b=AirfUzildHyDfWw+aih5r75IyQVToFsQv9i9PuDzAidaQiVQzhzNEDrGrHCh7sOSxJ cRqHBcM913FzCKGNQmF/jcIkVNNM5X2c5EJxT1moDcFNpnF1RtZWgfFLtjm6GJss381M +3eJZ0LJ/s7xEIKUBbIFE4mDp1p5P6GijV1B42sOTw3pik5LVMHWjlyopyZqzAz0er3M hE9PSG8pTy9e44boBbO8zi7UEVynsK9ojE1b/oW6gZsyWJHXOwLWFA1oQXBfFjB6iN6g jtia9nIm91ljjLGp3/HyVU0BPTxyaTKhQ6WWb7EPgvRy27T3yKUcZ45wdg3eD3V1u9So to/w== X-Received: by 10.66.254.225 with SMTP id al1mr25335540pad.111.1369567369933; Sun, 26 May 2013 04:22:49 -0700 (PDT) In-Reply-To: <20130526091432.GE31915@port70.net> Xref: news.gmane.org gmane.linux.lib.musl.general:3365 Archived-At: --047d7b15b0d794b83904dd9d4088 Content-Type: text/plain; charset=ISO-8859-1 1,2 was fixed, but still gets segfault. 2 trivial, cmp(t,x,y) to cmp(x,y,t), (thunk,a,b) to (a,b,thunk) etc. 1. _IOR macro for ioctl should use 2U<<30 instead of 2<<30 2. your qsort_r seem to have the wrong prototype 3 is fine by me. 3. settimeofday should follow the bsd declaration other points need to be checked, i will look at these. TIA On Sun, May 26, 2013 at 6:14 PM, Szabolcs Nagy wrote: > * plan9assembler [2013-05-26 06:34:12 +0900]: > > Hi, i attached build log, and > > there were some minor musl issues: > _IOR macro for ioctl should use 2U<<30 instead of 2<<30 > settimeofday should follow the bsd declaration > x86_64 posix types should be long instead of long long > > (glibc is not entirely consistent on x86_64: > the types in user.h use long long) > > (i can prepare patches for these) > > your qsort_r seem to have the wrong prototype > (does not match cmp_t) > > there are some other problems as well, i'm not sure > which one trips mount, maybe you should recompile > musl and util-linux with -O0 -g3 and get a backtrace > from the crash > --047d7b15b0d794b83904dd9d4088 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
1,2 was fixed, but still gets segfault. 2 t= rivial, cmp(t,x,y) to cmp(x,y,t), (thunk,a,b) to (a,b,thunk) etc.
1. _IO= R macro for ioctl should use 2U<<30 instead of 2<<30
2. your= qsort_r seem to have the wrong prototype

3 is fine by me.
3. settimeofday should follow the = bsd declaration

other points need to be checked, i will look a= t these.
TIA


On Sun, May 26, 2013 at 6:14 PM, Szabolcs Nagy <nsz@port70.net>= wrote:
* plan9assembler <plan9assem= bler@gmail.com> [2013-05-26 06:34:12 +0900]:
> Hi, i attached build log, and

there were some minor musl issues:
_IOR macro for ioctl should use 2U<<30 instead of 2<<30
settimeofday should follow the bsd declaration
x86_64 posix types should be long instead of long long

(glibc is not entirely consistent on x86_64:
the types in user.h use long long)

(i can prepare patches for these)

your qsort_r seem to have the wrong prototype
(does not match cmp_t)

there are some other problems as well, i'm not sure
which one trips mount, maybe you should recompile
musl and util-linux with -O0 -g3 and get a backtrace
from the crash

--047d7b15b0d794b83904dd9d4088-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3367 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Mon, 27 May 2013 23:05:37 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8ff1cc2698255904ddb3a4b5 X-Trace: ger.gmane.org 1369663553 28566 80.91.229.3 (27 May 2013 14:05:53 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 27 May 2013 14:05:53 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3371-gllmg-musl=m.gmane.org@lists.openwall.com Mon May 27 16:05:54 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Ugy3b-0003ek-Iw for gllmg-musl@plane.gmane.org; Mon, 27 May 2013 16:05:53 +0200 Original-Received: (qmail 26101 invoked by uid 550); 27 May 2013 14:05:50 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 26086 invoked from network); 27 May 2013 14:05:49 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=eDFg50Gi8FSF7kpGh2WlWRK0Sp1s0KAx7rrCiwP6S70=; b=VbMc/L90TVy7+BWC3iGpwns09l4/E5jYau7GUt2rwP407WMVlEeBm3q0P2Ip7YLi6E 740WX+/gSJUONwfky5XRxUN/NazSuT8EB+UU5tJILfCjGINEZEntiwk7Edbo7TcLHwhs rS4pqJ3QtA253UGSqywSmAKeJbUWdi71Go64EvVCWgvmcdKEcS+k1mbD4X1wDqVt+3S8 iofMTVtVfbyqpMyF1bXUu1In2Ey5HrxMRRGOR+jcmPbofdxbwc2VZiGa4hXxi7pIwuku XH08Wq3E5aBenMHfNd63431ClOINXdkD0qY62QfH15NaFsxhMwShELiJp3yX6IQ8WdIS pp6w== X-Received: by 10.68.197.195 with SMTP id iw3mr29338864pbc.177.1369663537159; Mon, 27 May 2013 07:05:37 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3367 Archived-At: --e89a8ff1cc2698255904ddb3a4b5 Content-Type: multipart/alternative; boundary=e89a8ff1cc2698255604ddb3a4b3 --e89a8ff1cc2698255604ddb3a4b3 Content-Type: text/plain; charset=ISO-8859-1 util-linux-2.23 mount segfault error seems to be solved. no more segfault error, when i test mount binary. i modified follow macros in musl /include/bits/ioctl.h and musl libc reinstalled. - #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c)) - #define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c)) + #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) other points just removed some warings. ex) , ino); to , (uintmax_t) ino); // etc build log attached. TIA On Sun, May 26, 2013 at 8:22 PM, plan9assembler wrote: > 1,2 was fixed, but still gets segfault. 2 trivial, cmp(t,x,y) to > cmp(x,y,t), (thunk,a,b) to (a,b,thunk) etc. > 1. _IOR macro for ioctl should use 2U<<30 instead of 2<<30 > 2. your qsort_r seem to have the wrong prototype > > 3 is fine by me. > 3. settimeofday should follow the bsd declaration > > other points need to be checked, i will look at these. > TIA > > > On Sun, May 26, 2013 at 6:14 PM, Szabolcs Nagy wrote: > >> * plan9assembler [2013-05-26 06:34:12 +0900]: >> > Hi, i attached build log, and >> >> there were some minor musl issues: >> _IOR macro for ioctl should use 2U<<30 instead of 2<<30 >> settimeofday should follow the bsd declaration >> x86_64 posix types should be long instead of long long >> >> (glibc is not entirely consistent on x86_64: >> the types in user.h use long long) >> >> (i can prepare patches for these) >> >> your qsort_r seem to have the wrong prototype >> (does not match cmp_t) >> >> there are some other problems as well, i'm not sure >> which one trips mount, maybe you should recompile >> musl and util-linux with -O0 -g3 and get a backtrace >> from the crash >> > > --e89a8ff1cc2698255604ddb3a4b3 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
util-linux-2.23 mount segfau= lt error seems to be solved.
no more segfault error, when i t= est mount binary.

i modified follow macros in musl = /include/bits/ioctl.h and musl libc reinstalled.

- #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
- #define _IOWR(a,b,= c) _IOC(3,(a),(b),sizeof(c))

+ #define _IOR(a,b,c) _IOC(2U,(a),(b),s= izeof(c))
+ #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c))

other points just removed some warings.
ex)
=A0, ino);=A0= to=A0 , (uintmax_t) ino); // etc

build log attached.

<= /div>TIA

=


On Sun, May 26, 2013 at 8:22 PM, plan9assembler <= plan9assemble= r@gmail.com> wrote:
1,2 was fixe= d, but still gets segfault. 2 trivial, cmp(t,x,y) to cmp(x,y,t), (thunk,a,b= ) to (a,b,thunk) etc.
1. _IOR macro for ioctl should use 2U<<30 instead of 2<<30
2= . your qsort_r seem to have the wrong prototype

3 is fine by me.
3. settimeofday should follow the = bsd declaration

other points need to be checked, i will look a= t these.
TIA


On Sun, May 26, 2013 at 6:14 PM, Szabolcs Nagy <nsz@port70.net>= wrote:
* plan9assembler <plan9assembler@gmail.com> [2013-05-26 06:34:12 +0900]:
> Hi, i attached build log, and

there were some minor musl issues:
_IOR macro for ioctl should use 2U<<30 instead of 2<<30
settimeofday should follow the bsd declaration
x86_64 posix types should be long instead of long long

(glibc is not entirely consistent on x86_64:
the types in user.h use long long)

(i can prepare patches for these)

your qsort_r seem to have the wrong prototype
(does not match cmp_t)

there are some other problems as well, i'm not sure
which one trips mount, maybe you should recompile
musl and util-linux with -O0 -g3 and get a backtrace
from the crash


--e89a8ff1cc2698255604ddb3a4b3-- --e89a8ff1cc2698255904ddb3a4b5 Content-Type: application/octet-stream; name="build.log" Content-Disposition: attachment; filename="build.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hh7qa4mb0 bWFrZSAgYWxsLXJlY3Vyc2l2ZQptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC91dGlsLWxp bnV4LTIuMjMnCk1ha2luZyBhbGwgaW4gcG8KbWFrZVsyXTogRW50ZXJpbmcgZGlyZWN0b3J5IGAv dXRpbC1saW51eC0yLjIzL3BvJwptYWtlWzJdOiBOb3RoaW5nIHRvIGJlIGRvbmUgZm9yIGBhbGwn LgptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL3V0aWwtbGludXgtMi4yMy9wbycKbWFrZVsy XTogRW50ZXJpbmcgZGlyZWN0b3J5IGAvdXRpbC1saW51eC0yLjIzJwogIENDICAgICAgIGxpYi9s aWJjb21tb25fbGEtYXQubG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLWJsa2Rldi5sbwog IENDICAgICAgIGxpYi9saWJjb21tb25fbGEtY2Fub25pY2FsaXplLmxvCiAgQ0MgICAgICAgbGli L2xpYmNvbW1vbl9sYS1jb2xvcnMubG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLWNyYzMy LmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1lbnYubG8KICBDQyAgICAgICBsaWIvbGli Y29tbW9uX2xhLWZpbGV1dGlscy5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtaXNtb3Vu dGVkLmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1tYW5nbGUubG8KICBDQyAgICAgICBs aWIvbGliY29tbW9uX2xhLW1hdGNoLmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1tYnNh bGlnbi5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtbWQ1LmxvCiAgQ0MgICAgICAgbGli L2xpYmNvbW1vbl9sYS1wYWdlci5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtcGF0aC5s bwpsaWIvcGF0aC5jOjI0MDoxOiB3YXJuaW5nOiBubyBwcmV2aW91cyBwcm90b3R5cGUgZm9yICdw YXRoX3NldF9wcmVmaXgnIFstV21pc3NpbmctcHJvdG90eXBlc10KIHBhdGhfc2V0X3ByZWZpeChj b25zdCBjaGFyICpwcmVmaXgpCiBeCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS1wcm9jdXRp bHMubG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLXJhbmR1dGlscy5sbwogIENDICAgICAg IGxpYi9saWJjb21tb25fbGEtc2V0cHJvY3RpdGxlLmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1v bl9sYS1zdHJ1dGlscy5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtc3lzZnMubG8KICBD QyAgICAgICBsaWIvbGliY29tbW9uX2xhLXR0LmxvCiAgQ0MgICAgICAgbGliL2xpYmNvbW1vbl9s YS13aG9sZWRpc2subG8KICBDQyAgICAgICBsaWIvbGliY29tbW9uX2xhLXR0eXV0aWxzLmxvCiAg Q0MgICAgICAgbGliL2xpYmNvbW1vbl9sYS14Z2V0cGFzcy5sbwogIENDICAgICAgIGxpYi9saWJj b21tb25fbGEtZXhlY19zaGVsbC5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtbGludXhf dmVyc2lvbi5sbwogIENDICAgICAgIGxpYi9saWJjb21tb25fbGEtbG9vcGRldi5sbwogIENDTEQg ICAgIGxpYmNvbW1vbi5sYQogIENDICAgICAgIGxpYmZkaXNrL3NyYy9saWJmZGlza19sYS1pbml0 LmxvCiAgQ0MgICAgICAgbGliZmRpc2svc3JjL2xpYmZkaXNrX2xhLXRlc3QubG8KICBDQyAgICAg ICBsaWJmZGlzay9zcmMvbGliZmRpc2tfbGEtYXNrLmxvCiAgQ0MgICAgICAgbGliZmRpc2svc3Jj L2xpYmZkaXNrX2xhLWFsaWdubWVudC5sbwogIENDICAgICAgIGxpYmZkaXNrL3NyYy9saWJmZGlz a19sYS1sYWJlbC5sbwogIENDICAgICAgIGxpYmZkaXNrL3NyYy9saWJmZGlza19sYS11dGlscy5s bwogIENDICAgICAgIGxpYmZkaXNrL3NyYy9saWJmZGlza19sYS1jb250ZXh0LmxvCiAgQ0MgICAg ICAgbGliZmRpc2svc3JjL2xpYmZkaXNrX2xhLXBhcnR0eXBlLmxvCiAgQ0MgICAgICAgbGliZmRp c2svc3JjL2xpYmZkaXNrX2xhLWdwdC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtp ZF9sYS1pbml0LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLWNhY2hlLmxv CiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLWNvbmZpZy5sbwogIENDICAgICAg IGxpYmJsa2lkL3NyYy9saWJibGtpZF9sYS1kZXYubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMv bGliYmxraWRfbGEtZGV2bmFtZS5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtpZF9s YS1kZXZuby5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtpZF9sYS1lbmNvZGUubG8K ICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtZXZhbHVhdGUubG8KICBDQyAgICAg ICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtZ2V0c2l6ZS5sbwogIENDICAgICAgIGxpYmJsa2lk L3NyYy9saWJibGtpZF9sYS1sbHNlZWsubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGliYmxr aWRfbGEtcHJvYmUubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvbGliYmxraWRfbGEtcmVhZC5s bwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtpZF9sYS1yZXNvbHZlLmxvCiAgQ0MgICAg ICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xhLXNhdmUubG8KICBDQyAgICAgICBsaWJibGtpZC9z cmMvbGliYmxraWRfbGEtdGFnLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL2xpYmJsa2lkX2xh LXZlcmlmeS5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9saWJibGtpZF9sYS12ZXJzaW9uLmxv CiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtYWl4LmxvCiAg Q0MgICAgICAgbGliYmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtYnNkLmxvCiAgQ0Mg ICAgICAgbGliYmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtZG9zLmxvCiAgQ0MgICAg ICAgbGliYmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtZ3B0LmxvCiAgQ0MgICAgICAg bGliYmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtbWFjLmxvCiAgQ0MgICAgICAgbGli YmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtbWluaXgubG8KICBDQyAgICAgICBsaWJi bGtpZC9zcmMvcGFydGl0aW9ucy9saWJibGtpZF9sYS1wYXJ0aXRpb25zLmxvCiAgQ0MgICAgICAg bGliYmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtc2dpLmxvCiAgQ0MgICAgICAgbGli YmxraWQvc3JjL3BhcnRpdGlvbnMvbGliYmxraWRfbGEtc29sYXJpc194ODYubG8KICBDQyAgICAg ICBsaWJibGtpZC9zcmMvcGFydGl0aW9ucy9saWJibGtpZF9sYS1zdW4ubG8KICBDQyAgICAgICBs aWJibGtpZC9zcmMvcGFydGl0aW9ucy9saWJibGtpZF9sYS11bHRyaXgubG8KICBDQyAgICAgICBs aWJibGtpZC9zcmMvcGFydGl0aW9ucy9saWJibGtpZF9sYS11bml4d2FyZS5sbwogIENDICAgICAg IGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1hZGFwdGVjX3JhaWQubG8KICBD QyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtYmVmcy5sbwogIEND ICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1iZnMubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtYnRyZnMubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtY3JhbWZzLmxvCiAgQ0Mg ICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWRkZl9yYWlkLmxvCiAg Q0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWRyYmQubG8KICBD QyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtZHJiZHByb3h5X2Rh dGFsb2cubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEt ZXhmYXQubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEt ZXh0LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWYy ZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtZ2Zz LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLWhmcy5s bwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1oaWdocG9p bnRfcmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9s YS1ocGZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xh LWlzbzk2NjAubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRf bGEtaXN3X3JhaWQubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxr aWRfbGEtamZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lk X2xhLWptaWNyb25fcmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9s aWJibGtpZF9sYS1saW51eF9yYWlkLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxv Y2tzL2xpYmJsa2lkX2xhLWxzaV9yYWlkLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVy YmxvY2tzL2xpYmJsa2lkX2xhLWx1a3MubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJi bG9ja3MvbGliYmxraWRfbGEtbHZtLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxv Y2tzL2xpYmJsa2lkX2xhLW1pbml4LmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxv Y2tzL2xpYmJsa2lkX2xhLW5ldHdhcmUubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJi bG9ja3MvbGliYmxraWRfbGEtbmlsZnMubG8KICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJi bG9ja3MvbGliYmxraWRfbGEtbnRmcy5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJs b2Nrcy9saWJibGtpZF9sYS1udmlkaWFfcmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy9z dXBlcmJsb2Nrcy9saWJibGtpZF9sYS1vY2ZzLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3JjL3N1 cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXByb21pc2VfcmFpZC5sbwogIENDICAgICAgIGxpYmJsa2lk L3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1yZWlzZXJmcy5sbwogIENDICAgICAgIGxpYmJs a2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1yb21mcy5sbwogIENDICAgICAgIGxpYmJs a2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1zaWxpY29uX3JhaWQubG8KICBDQyAgICAg ICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtc3F1YXNoZnMubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtc3VwZXJibG9ja3MubG8K ICBDQyAgICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtc3dhcC5sbwog IENDICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS1zeXN2LmxvCiAg Q0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXViaWZzLmxvCiAg Q0MgICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXVkZi5sbwogIEND ICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS11ZnMubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEtdmZhdC5sbwogIENDICAg ICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS12aWFfcmFpZC5sbwogIEND ICAgICAgIGxpYmJsa2lkL3NyYy9zdXBlcmJsb2Nrcy9saWJibGtpZF9sYS12bWZzLmxvCiAgQ0Mg ICAgICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXZ4ZnMubG8KICBDQyAg ICAgICBsaWJibGtpZC9zcmMvc3VwZXJibG9ja3MvbGliYmxraWRfbGEteGZzLmxvCiAgQ0MgICAg ICAgbGliYmxraWQvc3JjL3N1cGVyYmxvY2tzL2xpYmJsa2lkX2xhLXpmcy5sbwogIENDICAgICAg IGxpYmJsa2lkL3NyYy90b3BvbG9neS9saWJibGtpZF9sYS10b3BvbG9neS5sbwogIENDICAgICAg IGxpYmJsa2lkL3NyYy90b3BvbG9neS9saWJibGtpZF9sYS1kbS5sbwogIENDICAgICAgIGxpYmJs a2lkL3NyYy90b3BvbG9neS9saWJibGtpZF9sYS1ldm1zLmxvCiAgQ0MgICAgICAgbGliYmxraWQv c3JjL3RvcG9sb2d5L2xpYmJsa2lkX2xhLWlvY3RsLmxvCiAgQ0MgICAgICAgbGliYmxraWQvc3Jj L3RvcG9sb2d5L2xpYmJsa2lkX2xhLWx2bS5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy90b3Bv bG9neS9saWJibGtpZF9sYS1tZC5sbwogIENDICAgICAgIGxpYmJsa2lkL3NyYy90b3BvbG9neS9s aWJibGtpZF9sYS1zeXNmcy5sbwogIENDICAgICAgIGxpYnV1aWQvc3JjL2xpYnV1aWRfbGEtY2xl YXIubG8KICBDQyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlkX2xhLWNvbXBhcmUubG8KICBDQyAg ICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlkX2xhLWNvcHkubG8KICBDQyAgICAgICBsaWJ1dWlkL3Ny Yy9saWJ1dWlkX2xhLWdlbl91dWlkLmxvCiAgQ0MgICAgICAgbGlidXVpZC9zcmMvbGlidXVpZF9s YS1pc251bGwubG8KICBDQyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlkX2xhLXBhY2subG8KICBD QyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlkX2xhLXBhcnNlLmxvCiAgQ0MgICAgICAgbGlidXVp ZC9zcmMvbGlidXVpZF9sYS11bnBhY2subG8KICBDQyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlk X2xhLXVucGFyc2UubG8KICBDQyAgICAgICBsaWJ1dWlkL3NyYy9saWJ1dWlkX2xhLXV1aWRfdGlt ZS5sbwogIENDICAgICAgIGxpYi9saWJ1dWlkX2xhLXJhbmR1dGlscy5sbwogIENDTEQgICAgIGxp YnV1aWQubGEKICBDQ0xEICAgICBsaWJibGtpZC5sYQpjb3B5aW5nIHNlbGVjdGVkIG9iamVjdCBm aWxlcyB0byBhdm9pZCBiYXNlbmFtZSBjb25mbGljdHMuLi4KICBDQ0xEICAgICBsaWJmZGlzay5s YQogIENDICAgICAgIGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS1jYWNoZS5sbwogIENDICAgICAg IGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS1jb250ZXh0LmxvCiAgQ0MgICAgICAgbGlibW91bnQv c3JjL2xpYm1vdW50X2xhLWNvbnRleHRfbG9vcGRldi5sbwogIENDICAgICAgIGxpYm1vdW50L3Ny Yy9saWJtb3VudF9sYS1jb250ZXh0X21vdW50LmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xp Ym1vdW50X2xhLWNvbnRleHRfdW1vdW50LmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xpYm1v dW50X2xhLWZzLmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xpYm1vdW50X2xhLWluaXQubG8K ICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtaXRlci5sbwogIENDICAgICAgIGxp Ym1vdW50L3NyYy9saWJtb3VudF9sYS1sb2NrLmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xp Ym1vdW50X2xhLW9wdG1hcC5sbwogIENDICAgICAgIGxpYm1vdW50L3NyYy9saWJtb3VudF9sYS1v cHRzdHIubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtdGFiLmxvCiAgQ0Mg ICAgICAgbGlibW91bnQvc3JjL2xpYm1vdW50X2xhLXRhYl9kaWZmLmxvCiAgQ0MgICAgICAgbGli bW91bnQvc3JjL2xpYm1vdW50X2xhLXRhYl9wYXJzZS5sbwogIENDICAgICAgIGxpYm1vdW50L3Ny Yy9saWJtb3VudF9sYS10YWJfdXBkYXRlLmxvCiAgQ0MgICAgICAgbGlibW91bnQvc3JjL2xpYm1v dW50X2xhLXRlc3QubG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtdXRpbHMu bG8KICBDQyAgICAgICBsaWJtb3VudC9zcmMvbGlibW91bnRfbGEtdmVyc2lvbi5sbwogIENDTEQg ICAgIGxpYm1vdW50LmxhCiAgQ0MgICAgICAgdGV4dC11dGlscy9tb3JlLm8KdGV4dC11dGlscy9t b3JlLmM6IEluIGZ1bmN0aW9uICdtYWluJzoKdGV4dC11dGlscy9tb3JlLmM6MzQyOjY6IHdhcm5p bmc6IHZhcmlhYmxlICdsZWZ0JyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgJ2xvbmdqbXAnIG9yICd2 Zm9yaycgWy1XY2xvYmJlcmVkXQogIGludCBsZWZ0OwogICAgICBeCnRleHQtdXRpbHMvbW9yZS5j OjM0Mzo2OiB3YXJuaW5nOiB2YXJpYWJsZSAncHJuYW1lcycgbWlnaHQgYmUgY2xvYmJlcmVkIGJ5 ICdsb25nam1wJyBvciAndmZvcmsnIFstV2Nsb2JiZXJlZF0KICBpbnQgcHJuYW1lcyA9IDA7CiAg ICAgIF4KdGV4dC11dGlscy9tb3JlLmM6MzQ0OjY6IHdhcm5pbmc6IHZhcmlhYmxlICdpbml0b3B0 JyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgJ2xvbmdqbXAnIG9yICd2Zm9yaycgWy1XY2xvYmJlcmVk XQogIGludCBpbml0b3B0ID0gMDsKICAgICAgXgp0ZXh0LXV0aWxzL21vcmUuYzozNDU6Njogd2Fy bmluZzogdmFyaWFibGUgJ3NyY2hvcHQnIG1pZ2h0IGJlIGNsb2JiZXJlZCBieSAnbG9uZ2ptcCcg b3IgJ3Zmb3JrJyBbLVdjbG9iYmVyZWRdCiAgaW50IHNyY2hvcHQgPSAwOwogICAgICBeCnRleHQt dXRpbHMvbW9yZS5jOjM0ODo4OiB3YXJuaW5nOiB2YXJpYWJsZSAnaW5pdGJ1ZicgbWlnaHQgYmUg Y2xvYmJlcmVkIGJ5ICdsb25nam1wJyBvciAndmZvcmsnIFstV2Nsb2JiZXJlZF0KICBjaGFyICpp bml0YnVmID0gTlVMTDsKICAgICAgICBeCiAgQ0NMRCAgICAgbW9yZQogIENDICAgICAgIHN5cy11 dGlscy9kbWVzZy5vCiAgQ0NMRCAgICAgZG1lc2cKICBDQyAgICAgICBzeXMtdXRpbHMvbW91bnQt bW91bnQubwogIENDTEQgICAgIG1vdW50CiAgQ0MgICAgICAgc3lzLXV0aWxzL3Vtb3VudC11bW91 bnQubwogIENDTEQgICAgIHVtb3VudAogIENDICAgICAgIHN5cy11dGlscy93ZGN0bC5vCiAgQ0NM RCAgICAgd2RjdGwKICBDQyAgICAgICBzeXMtdXRpbHMvbW91bnRwb2ludC1tb3VudHBvaW50Lm8K ICBDQ0xEICAgICBtb3VudHBvaW50CiAgQ0MgICAgICAgbWlzYy11dGlscy9sc2Jsay1sc2Jsay5v CiAgQ0NMRCAgICAgbHNibGsKICBDQyAgICAgICBtaXNjLXV0aWxzL2ZpbmRtbnQtZmluZG1udC5v Cm1pc2MtdXRpbHMvZmluZG1udC5jOiBJbiBmdW5jdGlvbiAnZ2V0X3RhZyc6Cm1pc2MtdXRpbHMv ZmluZG1udC5jOjQxMzo3NTogd2FybmluZzogdW51c2VkIHBhcmFtZXRlciAnY29sJyBbLVd1bnVz ZWQtcGFyYW1ldGVyXQogc3RhdGljIGNvbnN0IGNoYXIgKmdldF90YWcoc3RydWN0IGxpYm1udF9m cyAqZnMsIGNvbnN0IGNoYXIgKnRhZ25hbWUsIGludCBjb2wpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K ICBDQ0xEICAgICBmaW5kbW50CiAgQ0MgICAgICAgbWlzYy11dGlscy9raWxsLm8KICBDQ0xEICAg ICBraWxsCiAgQ0MgICAgICAgdGVybS11dGlscy9hZ2V0dHkubwogIENDTEQgICAgIGFnZXR0eQog IENDICAgICAgIHN5cy11dGlscy9jdHJsYWx0ZGVsLm8KICBDQ0xEICAgICBjdHJsYWx0ZGVsCiAg Q0MgICAgICAgc3lzLXV0aWxzL2ZzZnJlZXplLm8KICBDQ0xEICAgICBmc2ZyZWV6ZQogIENDICAg ICAgIHN5cy11dGlscy9mc3RyaW0ubwogIENDTEQgICAgIGZzdHJpbQogIENDICAgICAgIHN5cy11 dGlscy9ibGtkaXNjYXJkLm8KICBDQ0xEICAgICBibGtkaXNjYXJkCiAgQ0MgICAgICAgc3lzLXV0 aWxzL2xvc2V0dXAubwogIENDTEQgICAgIGxvc2V0dXAKICBDQyAgICAgICBzeXMtdXRpbHMvc3dh cG9uLXN3YXBvbi5vCiAgQ0MgICAgICAgc3lzLXV0aWxzL3N3YXBvbi1zd2Fwb24tY29tbW9uLm8K ICBDQ0xEICAgICBzd2Fwb24KICBDQyAgICAgICBzeXMtdXRpbHMvc3dhcG9mZi1zd2Fwb2ZmLm8K ICBDQyAgICAgICBzeXMtdXRpbHMvc3dhcG9mZi1zd2Fwb24tY29tbW9uLm8KICBDQ0xEICAgICBz d2Fwb2ZmCiAgQ0MgICAgICAgc3lzLXV0aWxzL3Bpdm90X3Jvb3QubwogIENDTEQgICAgIHBpdm90 X3Jvb3QKICBDQyAgICAgICBzeXMtdXRpbHMvc3dpdGNoX3Jvb3QubwogIENDTEQgICAgIHN3aXRj aF9yb290CiAgQ0MgICAgICAgc3lzLXV0aWxzL2h3Y2xvY2subwogIENDICAgICAgIHN5cy11dGls cy9od2Nsb2NrLWNtb3MubwpJbiBmaWxlIGluY2x1ZGVkIGZyb20gc3lzLXV0aWxzL2h3Y2xvY2st Y21vcy5jOjk2OjA6CnN5cy11dGlscy9od2Nsb2NrLmg6MzA6NTk6IHdhcm5pbmc6ICdzdHJ1Y3Qg dGltZXZhbCcgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFtlbmFibGVkIGJ5IGRlZmF1 bHRdCiBleHRlcm4gZG91YmxlIHRpbWVfZGlmZihzdHJ1Y3QgdGltZXZhbCBzdWJ0cmFoZW5kLCBz dHJ1Y3QgdGltZXZhbCBzdWJ0cmFjdG9yKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCnN5cy11dGlscy9od2Nsb2NrLmg6MzA6NTk6 IHdhcm5pbmc6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlv biwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQgW2VuYWJsZWQgYnkgZGVmYXVs dF0KICBDQyAgICAgICBzeXMtdXRpbHMvaHdjbG9jay1rZC5vCkluIGZpbGUgaW5jbHVkZWQgZnJv bSBzeXMtdXRpbHMvaHdjbG9jay1rZC5jOjQ6MDoKc3lzLXV0aWxzL2h3Y2xvY2suaDozMDo1OTog d2FybmluZzogJ3N0cnVjdCB0aW1ldmFsJyBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3Qg W2VuYWJsZWQgYnkgZGVmYXVsdF0KIGV4dGVybiBkb3VibGUgdGltZV9kaWZmKHN0cnVjdCB0aW1l dmFsIHN1YnRyYWhlbmQsIHN0cnVjdCB0aW1ldmFsIHN1YnRyYWN0b3IpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4Kc3lzLXV0aWxz L2h3Y2xvY2suaDozMDo1OTogd2FybmluZzogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0 aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBb ZW5hYmxlZCBieSBkZWZhdWx0XQogIENDICAgICAgIHN5cy11dGlscy9od2Nsb2NrLXJ0Yy5vCiAg Q0NMRCAgICAgaHdjbG9jawogIENDICAgICAgIG1pc2MtdXRpbHMvYmxraWQtYmxraWQubwogIEND TEQgICAgIGJsa2lkCiAgQ0MgICAgICAgbWlzYy11dGlscy9maW5kZnMtZmluZGZzLm8KICBDQ0xE ICAgICBmaW5kZnMKICBDQyAgICAgICBtaXNjLXV0aWxzL3dpcGVmcy13aXBlZnMubwogIENDTEQg ICAgIHdpcGVmcwogIENDICAgICAgIGRpc2stdXRpbHMvZnNjay5taW5peC5vCiAgQ0NMRCAgICAg ZnNjay5taW5peAogIENDICAgICAgIGRpc2stdXRpbHMvbWtmcy5taW5peC5vCiAgQ0NMRCAgICAg bWtmcy5taW5peAogIENDICAgICAgIGRpc2stdXRpbHMvbWtmcy5vCiAgQ0NMRCAgICAgbWtmcwog IENDICAgICAgIGRpc2stdXRpbHMvbWtmcy5iZnMubwogIENDTEQgICAgIG1rZnMuYmZzCiAgQ0Mg ICAgICAgZGlzay11dGlscy9ta3N3YXAtbWtzd2FwLm8KICBDQ0xEICAgICBta3N3YXAKICBDQyAg ICAgICBkaXNrLXV0aWxzL3N3YXBsYWJlbC1zd2FwbGFiZWwubwogIENDTEQgICAgIHN3YXBsYWJl bAogIENDICAgICAgIGRpc2stdXRpbHMvZnNjay1mc2NrLm8KICBDQ0xEICAgICBmc2NrCiAgQ0Mg ICAgICAgZGlzay11dGlscy9yYXcubwogIENDTEQgICAgIHJhdwogIENDICAgICAgIGRpc2stdXRp bHMvZnNjay5jcmFtZnMubwogIENDICAgICAgIGRpc2stdXRpbHMvY3JhbWZzX2NvbW1vbi5vCiAg Q0NMRCAgICAgZnNjay5jcmFtZnMKICBDQyAgICAgICBkaXNrLXV0aWxzL21rZnMuY3JhbWZzLm8K ICBDQ0xEICAgICBta2ZzLmNyYW1mcwogIENDICAgICAgIGRpc2stdXRpbHMvYmxvY2tkZXYubwog IENDTEQgICAgIGJsb2NrZGV2CiAgQ0MgICAgICAgZmRpc2tzL2ZkaXNrLWZkaXNrLm8KICBDQyAg ICAgICBmZGlza3MvZmRpc2stZmRpc2stYXNrLm8KICBDQyAgICAgICBmZGlza3MvZmRpc2stZmRp c2tic2RsYWJlbC5vCiAgQ0MgICAgICAgZmRpc2tzL2ZkaXNrLWZkaXNrZG9zbGFiZWwubwogIEND ICAgICAgIGZkaXNrcy9mZGlzay1mZGlza21hY2xhYmVsLm8KICBDQyAgICAgICBmZGlza3MvZmRp c2stZmRpc2tzZ2lsYWJlbC5vCiAgQ0MgICAgICAgZmRpc2tzL2ZkaXNrLWZkaXNrc3VubGFiZWwu bwogIENDICAgICAgIGZkaXNrcy9mZGlzay1wYXJ0bmFtZS5vCiAgQ0NMRCAgICAgZmRpc2sKICBD QyAgICAgICBmZGlza3MvcGFydG5hbWUubwogIENDICAgICAgIGZkaXNrcy9zZmRpc2subwogIEND TEQgICAgIHNmZGlzawogIENDICAgICAgIGZkaXNrcy9jZmRpc2stY2ZkaXNrLm8KZmRpc2tzL2Nm ZGlzay5jOiBJbiBmdW5jdGlvbiAnZ2V0X3N0cmluZyc6CmZkaXNrcy9jZmRpc2suYzo0NTY6Mjog d2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2dldF93Y2gnIFstV2lt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIGlmIChnZXRfd2NoKCZjKSA9PSBFUlIpIHsK ICBeCiAgQ0NMRCAgICAgY2ZkaXNrCiAgQ0MgICAgICAgc2NoZWR1dGlscy9jaHJ0Lm8KICBDQ0xE ICAgICBjaHJ0CiAgQ0MgICAgICAgc2NoZWR1dGlscy9pb25pY2UubwogIENDTEQgICAgIGlvbmlj ZQogIENDICAgICAgIHRleHQtdXRpbHMvY29sLm8KICBDQ0xEICAgICBjb2wKICBDQyAgICAgICB0 ZXh0LXV0aWxzL2NvbGNydC5vCiAgQ0NMRCAgICAgY29sY3J0CiAgQ0MgICAgICAgdGV4dC11dGls cy9jb2xybS5vCiAgQ0NMRCAgICAgY29scm0KICBDQyAgICAgICB0ZXh0LXV0aWxzL2NvbHVtbi5v CiAgQ0NMRCAgICAgY29sdW1uCiAgQ0MgICAgICAgdGV4dC11dGlscy9jb252Lm8KICBDQyAgICAg ICB0ZXh0LXV0aWxzL2Rpc3BsYXkubwogIENDICAgICAgIHRleHQtdXRpbHMvaGV4ZHVtcC5vCiAg Q0MgICAgICAgdGV4dC11dGlscy9oZXhzeW50YXgubwogIENDICAgICAgIHRleHQtdXRpbHMvcGFy c2UubwogIENDTEQgICAgIGhleGR1bXAKICBDQyAgICAgICB0ZXh0LXV0aWxzL3Jldi5vCiAgQ0NM RCAgICAgcmV2CiAgQ0MgICAgICAgdGV4dC11dGlscy90YWlsZi5vCiAgQ0NMRCAgICAgdGFpbGYK ICBDQyAgICAgICB0ZXh0LXV0aWxzL3BnLm8KdGV4dC11dGlscy9wZy5jOiBJbiBmdW5jdGlvbiAn cGdmaWxlJzoKdGV4dC11dGlscy9wZy5jOjEzNTI6MTM6IHdhcm5pbmc6IG1pc3Npbmcgc2VudGlu ZWwgaW4gZnVuY3Rpb24gY2FsbCBbLVdmb3JtYXQ9XQogICAgICAgICAgICAgY21kLmNtZGxpbmUg KyAxLCBOVUxMKTsKICAgICAgICAgICAgIF4KdGV4dC11dGlscy9wZy5jOjg4MDoyMTogd2Fybmlu ZzogdmFyaWFibGUgJ2Zwb3MnIG1pZ2h0IGJlIGNsb2JiZXJlZCBieSAnbG9uZ2ptcCcgb3IgJ3Zm b3JrJyBbLVdjbG9iYmVyZWRdCiAgb2ZmX3QgcG9zLCBvbGRwb3MsIGZwb3M7CiAgICAgICAgICAg ICAgICAgICAgIF4KdGV4dC11dGlscy9wZy5jOjg5MToxMTogd2FybmluZzogdmFyaWFibGUgJ3Nl YXJjaGNvdW50JyBtaWdodCBiZSBjbG9iYmVyZWQgYnkgJ2xvbmdqbXAnIG9yICd2Zm9yaycgWy1X Y2xvYmJlcmVkXQogIHVuc2lnbmVkIHNlYXJjaGNvdW50ID0gMDsKICAgICAgICAgICBeCnRleHQt dXRpbHMvcGcuYzo4OTc6Njogd2FybmluZzogdmFyaWFibGUgJ25vYnVmJyBtaWdodCBiZSBjbG9i YmVyZWQgYnkgJ2xvbmdqbXAnIG9yICd2Zm9yaycgWy1XY2xvYmJlcmVkXQogIGludCBub2J1ZiA9 IDA7CiAgICAgIF4KICBDQ0xEICAgICBwZwogIENDICAgICAgIHRleHQtdXRpbHMvdWwubwogIEND TEQgICAgIHVsCiAgQ0MgICAgICAgdGVybS11dGlscy9zY3JpcHQubwogIENDTEQgICAgIHNjcmlw dAogIENDICAgICAgIHRlcm0tdXRpbHMvc2NyaXB0cmVwbGF5Lm8KICBDQ0xEICAgICBzY3JpcHRy ZXBsYXkKICBDQyAgICAgICB0ZXJtLXV0aWxzL3NldHRlcm0ubwogIENDTEQgICAgIHNldHRlcm0K ICBDQyAgICAgICB0ZXJtLXV0aWxzL3dhbGwtd2FsbC5vCiAgQ0MgICAgICAgdGVybS11dGlscy93 YWxsLXR0eW1zZy5vCiAgQ0NMRCAgICAgd2FsbAogIENDICAgICAgIHN5cy11dGlscy9mbG9jay5v CiAgQ0NMRCAgICAgZmxvY2sKICBDQyAgICAgICBzeXMtdXRpbHMvaXBjbWsubwogIENDTEQgICAg IGlwY21rCiAgQ0MgICAgICAgc3lzLXV0aWxzL2lwY3JtLm8KICBDQ0xEICAgICBpcGNybQogIEND ICAgICAgIHN5cy11dGlscy9pcGNzLm8KICBDQyAgICAgICBzeXMtdXRpbHMvaXBjdXRpbHMubwog IENDTEQgICAgIGlwY3MKICBDQyAgICAgICBzeXMtdXRpbHMvcmVuaWNlLm8KICBDQ0xEICAgICBy ZW5pY2UKICBDQyAgICAgICBzeXMtdXRpbHMvc2V0c2lkLm8KICBDQ0xEICAgICBzZXRzaWQKICBD QyAgICAgICBzeXMtdXRpbHMvY3l0dW5lLm8KICBDQ0xEICAgICBjeXR1bmUKICBDQyAgICAgICBz eXMtdXRpbHMvc2V0YXJjaC5vCiAgQ0NMRCAgICAgc2V0YXJjaAogIENDICAgICAgIHN5cy11dGls cy9wcmxpbWl0Lm8KICBDQ0xEICAgICBwcmxpbWl0CiAgQ0MgICAgICAgc3lzLXV0aWxzL2ZhbGxv Y2F0ZS5vCiAgQ0NMRCAgICAgZmFsbG9jYXRlCiAgQ0MgICAgICAgc3lzLXV0aWxzL3Vuc2hhcmUu bwogIENDTEQgICAgIHVuc2hhcmUKICBDQyAgICAgICBzeXMtdXRpbHMvbnNlbnRlci5vCiAgQ0NM RCAgICAgbnNlbnRlcgogIENDICAgICAgIG1pc2MtdXRpbHMvY2FsLm8KICBDQyAgICAgICBsaWIv bWJzYWxpZ24ubwogIENDICAgICAgIGxpYi9zdHJ1dGlscy5vCiAgQ0NMRCAgICAgY2FsCiAgQ0Mg ICAgICAgbWlzYy11dGlscy9sb2dnZXIubwogIENDTEQgICAgIGxvZ2dlcgogIENDICAgICAgIG1p c2MtdXRpbHMvbG9vay5vCiAgQ0NMRCAgICAgbG9vawogIENDICAgICAgIG1pc2MtdXRpbHMvbWNv b2tpZS5vCiAgQ0MgICAgICAgbGliL21kNS5vCiAgQ0NMRCAgICAgbWNvb2tpZQogIENDICAgICAg IG1pc2MtdXRpbHMvbmFtZWkubwogIENDTEQgICAgIG5hbWVpCiAgQ0MgICAgICAgbWlzYy11dGls cy93aGVyZWlzLm8KICBDQ0xEICAgICB3aGVyZWlzCiAgQ0MgICAgICAgbWlzYy11dGlscy9sc2xv Y2tzLWxzbG9ja3MubwogIENDTEQgICAgIGxzbG9ja3MKICBDQyAgICAgICBtaXNjLXV0aWxzL3V1 aWRnZW4tdXVpZGdlbi5vCiAgQ0NMRCAgICAgdXVpZGdlbgogIENDICAgICAgIG1pc2MtdXRpbHMv cmVuYW1lLm8KICBDQ0xEICAgICByZW5hbWUKICBDQyAgICAgICBtaXNjLXV0aWxzL2dldG9wdC5v CiAgQ0NMRCAgICAgZ2V0b3B0CiAgQ0MgICAgICAgZGlzay11dGlscy9pc29zaXplLm8KICBDQ0xE ICAgICBpc29zaXplCiAgQ0MgICAgICAgc3lzLXV0aWxzL3JlYWRwcm9maWxlLm8KICBDQ0xEICAg ICByZWFkcHJvZmlsZQogIENDICAgICAgIHN5cy11dGlscy9sZGF0dGFjaC5vCiAgQ0NMRCAgICAg bGRhdHRhY2gKICBDQyAgICAgICBzeXMtdXRpbHMvcnRjd2FrZS5vCiAgQ0NMRCAgICAgcnRjd2Fr ZQogIENDICAgICAgIG1pc2MtdXRpbHMvdXVpZGQtdXVpZGQubwogIENDTEQgICAgIHV1aWRkCiAg Q0MgICAgICAgZGlzay11dGlscy9mZGZvcm1hdC5vCiAgQ0NMRCAgICAgZmRmb3JtYXQKICBDQyAg ICAgICBkaXNrLXV0aWxzL3BhcnR4LXBhcnR4Lm8KICBDQ0xEICAgICBwYXJ0eAogIENDICAgICAg IGRpc2stdXRpbHMvYWRkcGFydC5vCiAgQ0NMRCAgICAgYWRkcGFydAogIENDICAgICAgIGRpc2st dXRpbHMvZGVscGFydC5vCiAgQ0NMRCAgICAgZGVscGFydAogIENDICAgICAgIGRpc2stdXRpbHMv cmVzaXplcGFydC5vCiAgQ0NMRCAgICAgcmVzaXplcGFydAogIEdFTiAgICAgIG1pc2MtdXRpbHMv dXVpZGQuOAogIEdFTiAgICAgIHN5cy11dGlscy9saW51eDMyLjgKICBHRU4gICAgICBzeXMtdXRp bHMvbGludXg2NC44CiAgR0VOICAgICAgc3lzLXV0aWxzL2kzODYuOAogIEdFTiAgICAgIHN5cy11 dGlscy94ODZfNjQuOAogIEdFTiAgICAgIGxpYnV1aWQvdXVpZC5wYwogIEdFTiAgICAgIGxpYmJs a2lkL2Jsa2lkLnBjCiAgR0VOICAgICAgbGlibW91bnQvbW91bnQucGMKbWFrZVsyXTogTGVhdmlu ZyBkaXJlY3RvcnkgYC91dGlsLWxpbnV4LTIuMjMnCm1ha2VbMV06IExlYXZpbmcgZGlyZWN0b3J5 IGAvdXRpbC1saW51eC0yLjIzJwo= --e89a8ff1cc2698255904ddb3a4b5-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3368 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Mon, 27 May 2013 16:29:29 +0200 Message-ID: <20130527142929.GF31915@port70.net> References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1369664991 13120 80.91.229.3 (27 May 2013 14:29:51 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 27 May 2013 14:29:51 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3372-gllmg-musl=m.gmane.org@lists.openwall.com Mon May 27 16:29:52 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UgyQg-0000gE-4P for gllmg-musl@plane.gmane.org; Mon, 27 May 2013 16:29:42 +0200 Original-Received: (qmail 7762 invoked by uid 550); 27 May 2013 14:29:41 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 7754 invoked from network); 27 May 2013 14:29:41 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3368 Archived-At: * plan9assembler [2013-05-27 23:05:37 +0900]: > util-linux-2.23 mount segfault error seems to be solved. > no more segfault error, when i test mount binary. > > i modified follow macros in musl /include/bits/ioctl.h and musl libc > reinstalled. > > - #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c)) > - #define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c)) > > + #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) > hm are you sure this was the change that solved the segfault? that would be scary since the linux headers have signed int left shift overflows in many places (and as far as i know users of those headers dont use special compilation flags to make signed overflow well-defined like gcc -fwrapv) which compiler did you use and with what flags? (this could break a lot of legacy code) From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3370 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Tue, 28 May 2013 06:40:14 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8ff1c3d4797e8704ddb9fe50 X-Trace: ger.gmane.org 1369690827 21033 80.91.229.3 (27 May 2013 21:40:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 27 May 2013 21:40:27 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3374-gllmg-musl=m.gmane.org@lists.openwall.com Mon May 27 23:40:29 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uh59Y-0000Lr-P3 for gllmg-musl@plane.gmane.org; Mon, 27 May 2013 23:40:28 +0200 Original-Received: (qmail 16297 invoked by uid 550); 27 May 2013 21:40:27 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 16283 invoked from network); 27 May 2013 21:40:27 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=MdTbrLAh3bkX6tOP9Ci8sAff2KyI1e4FuI7D+yDuPxA=; b=hlvj95GjJHef9yw6LHu1QVpFqWI2bAr88j2rpHlcP/DjAt770tn/rLCqGe5PDCKWz/ ME5WfChmEELXcCH4Mx35M2EUFs5XStQjHZIuANouMRK7UPiIl5l0BI8cgWav7RRXTOCZ xxEk/SXXYDcoQGTe9EYlYUwT2U3CPYcpRgVeZPEUtI2TrWb9mO8l5vzoCBrdD06au3+y Z+hSA2GUiXPfsI+7X0mgwH1F5gfu4WxJsKX4E6QB4Djn+W4Hha74rKNgjKskOekWXGtF a1Q/Wylz0npAE9XoK+CBdOfD58yBgfkZ2WhAMwiwWB6At1k/gfOzHDOJGQpwGfC/iWh0 1mSQ== X-Received: by 10.68.201.132 with SMTP id ka4mr30302921pbc.162.1369690814904; Mon, 27 May 2013 14:40:14 -0700 (PDT) In-Reply-To: <20130527142929.GF31915@port70.net> Xref: news.gmane.org gmane.linux.lib.musl.general:3370 Archived-At: --e89a8ff1c3d4797e8704ddb9fe50 Content-Type: text/plain; charset=ISO-8859-1 Hi, i am sure but it works for me. actually, it little strange, because, after modification, first time, it getting segfaults, later, it works fine. flags in util-linux-2.23 was created automatically. musl linux system could be set by this method: https://github.com/pikhq/bootstrap-linux/issues/8 https://github.com/pikhq/bootstrap-linux/issues/9 http://plan9assembler.wordpress.com/2013/04/26/bootstrap-linux-musl-cross/ gcc-4.8 CC = gcc -std=gnu99 CCDEPMODE = depmode=gcc3 CFLAGS = -g -O2 CPP = gcc -E TIA On Mon, May 27, 2013 at 11:29 PM, Szabolcs Nagy wrote: > * plan9assembler [2013-05-27 23:05:37 +0900]: > > util-linux-2.23 mount segfault error seems to be solved. > > no more segfault error, when i test mount binary. > > > > i modified follow macros in musl /include/bits/ioctl.h and musl libc > > reinstalled. > > > > - #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c)) > > - #define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c)) > > > > + #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) > > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) > > > > hm are you sure this was the change that solved the segfault? > > that would be scary since the linux headers have signed > int left shift overflows in many places > (and as far as i know users of those headers dont use > special compilation flags to make signed overflow > well-defined like gcc -fwrapv) > > which compiler did you use and with what flags? > (this could break a lot of legacy code) > --e89a8ff1c3d4797e8704ddb9fe50 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi, i am sure but it works for me.

<= /div>actually, it little strange, because,
after modification, fir= st time, it getting segfaults,
later, it works fine.

gcc-4.8
CC =3D gcc -std=3Dgnu99
CCDEPMODE =3D depmode= =3Dgcc3
CFLAGS =3D -g -O2
CPP =3D gcc -E

TIA



On Mon, May 27, 2013 at 11:29 PM, Szabolcs Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assem= bler@gmail.com> [2013-05-27 23:05:37 +0900]:
> util-linux-2.23 mount segfault error seems to be sol= ved.
> no more segfault error, when i test mount binary.
>
> i modified follow macros in musl /include/bits/ioctl.h and musl libc > reinstalled.
>
> - #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
> - #define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c))
>
> + #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))
> + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c))
>

hm are you sure this was the change that solved the segfault?

that would be scary since the linux headers have signed
int left shift overflows in many places
(and as far as i know users of those headers dont use
special compilation flags to make signed overflow
well-defined like gcc -fwrapv)

which compiler did you use and with what flags?
(this could break a lot of legacy code)

--e89a8ff1c3d4797e8704ddb9fe50-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3374 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Wed, 29 May 2013 22:46:04 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b6d7c1c68969704dddb9aa7 X-Trace: ger.gmane.org 1369835178 8147 80.91.229.3 (29 May 2013 13:46:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 13:46:18 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3378-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 29 15:46:19 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uhghn-00034z-4T for gllmg-musl@plane.gmane.org; Wed, 29 May 2013 15:46:19 +0200 Original-Received: (qmail 3245 invoked by uid 550); 29 May 2013 13:46:17 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 3224 invoked from network); 29 May 2013 13:46:17 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=8UHIqzp3fVpfbOt5sWwmV0yepFGBYSPura90CGnBDDo=; b=Fzp+53kd/3c0hjqWP3bJxZN5BF0h2I2S8sbHXcN4G/NEFGrXfYsLMlK9u5s4mINge/ U+1uG/g+Eau7pe5zZs8PDtJo7iKv0zvMt+8LHxpiyi1vI0YIGhO/9O3mDOUwzJGZ2W/n 3Ml5eUgnElJyIqbEWPTHg7+7MmjtDuE+gZRi0jQtVQsagHBHDz3la0kaJJR5EytUgNSa CPUkdQ0jWle4gvX9GSyegKM7kmvwORcdxMjSU31b/OPMNGZIGM0BtDn3LVSbp0mM19XZ n2SCVHm4VfuKo0NbTLX0zyGV2UNUBG0yE06Yn2gT9vfJ52+/fGKiQVSKsnBoG9RnU7hm V7Iw== X-Received: by 10.68.106.130 with SMTP id gu2mr724572pbb.111.1369835164962; Wed, 29 May 2013 06:46:04 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3374 Archived-At: --047d7b6d7c1c68969704dddb9aa7 Content-Type: text/plain; charset=ISO-8859-1 Hi, it didn't solved, still get segfaults.. partially gets segfaults # this works .libs/mount /dev/sda1 /mnt # this segfaults .libs/umount /mnt after util-linux-2.23( mount, umount binary) installation, it segfaults when mount rootfs rw. so removed mount umount and symlink again. # rm /mnt/bin/{mount, umount} # ln -s /mnt/bin/busybox /mnt/bin/mount # ln -s /mnt/bin/busybox /mnt/bin/umount On Tue, May 28, 2013 at 6:40 AM, plan9assembler wrote: > Hi, i am sure but it works for me. > > actually, it little strange, because, > after modification, first time, it getting segfaults, > later, it works fine. > > flags in util-linux-2.23 was created automatically. > > musl linux system could be set by this method: > https://github.com/pikhq/bootstrap-linux/issues/8 > https://github.com/pikhq/bootstrap-linux/issues/9 > http://plan9assembler.wordpress.com/2013/04/26/bootstrap-linux-musl-cross/ > > gcc-4.8 > CC = gcc -std=gnu99 > CCDEPMODE = depmode=gcc3 > CFLAGS = -g -O2 > CPP = gcc -E > > TIA > > > > > On Mon, May 27, 2013 at 11:29 PM, Szabolcs Nagy wrote: > >> * plan9assembler [2013-05-27 23:05:37 +0900]: >> > util-linux-2.23 mount segfault error seems to be solved. >> > no more segfault error, when i test mount binary. >> > >> > i modified follow macros in musl /include/bits/ioctl.h and musl libc >> > reinstalled. >> > >> > - #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c)) >> > - #define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c)) >> > >> > + #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) >> > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) >> > >> >> hm are you sure this was the change that solved the segfault? >> >> that would be scary since the linux headers have signed >> int left shift overflows in many places >> (and as far as i know users of those headers dont use >> special compilation flags to make signed overflow >> well-defined like gcc -fwrapv) >> >> which compiler did you use and with what flags? >> (this could break a lot of legacy code) >> > > --047d7b6d7c1c68969704dddb9aa7 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi, it didn't solve= d, still get segfaults..

partially gets segfaults

# thi= s works
.libs/mount /dev/sda1 /mnt

# this segfau= lts
.libs/umount /mnt

after util-linux-2.23= ( mount, umount binary) installation,
it segfaults when mount roo= tfs rw.

so removed mount umount and symlink again.
# rm /mnt/bin/{mount, umount}
# ln -s /mnt/bin/busybox /mnt/bin/mo= unt
# ln -s /mnt/bin/busybox /mnt/bin/umount



On Tue, May 28, 2013 at 6:4= 0 AM, plan9assembler <plan9assembler@gmail.com> wrote= :
Hi, i am sur= e but it works for me.

actually, it little strange, because,
after modification, first time, it getting segfaults,
later,= it works fine.

gcc-4.8
CC =3D gcc -std=3Dgnu99
CCDEPMODE =3D depmode= =3Dgcc3
CFLAGS =3D -g -O2
CPP =3D gcc -E

TIA




On Mon, May 27, 2013 at 11:29 PM, Szabolcs Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [2013-05-27 23:05:37 +0900]:
> util-linux-2.23 mount segfault error seems to be solved.
> no more segfault error, when i test mount binary.
>
> i modified follow macros in musl /include/bits/ioctl.h and musl libc > reinstalled.
>
> - #define _IOR(a,b,c) _IOC(2,(a),(b),sizeof(c))
> - #define _IOWR(a,b,c) _IOC(3,(a),(b),sizeof(c))
>
> + #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))
> + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c))
>

hm are you sure this was the change that solved the segfault?

that would be scary since the linux headers have signed
int left shift overflows in many places
(and as far as i know users of those headers dont use
special compilation flags to make signed overflow
well-defined like gcc -fwrapv)

which compiler did you use and with what flags?
(this could break a lot of legacy code)


--047d7b6d7c1c68969704dddb9aa7-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3375 Path: news.gmane.org!not-for-mail From: Luca Barbato Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Wed, 29 May 2013 16:11:00 +0200 Message-ID: <51A60C74.6050500@gentoo.org> References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1369836671 26648 80.91.229.3 (29 May 2013 14:11:11 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 14:11:11 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3379-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 29 16:11:12 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uhh5r-000728-DL for gllmg-musl@plane.gmane.org; Wed, 29 May 2013 16:11:11 +0200 Original-Received: (qmail 18138 invoked by uid 550); 29 May 2013 14:11:10 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 18130 invoked from network); 29 May 2013 14:11:10 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130411 Thunderbird/17.0.5 In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3375 Archived-At: On 05/27/2013 11:40 PM, plan9assembler wrote: > Hi, i am sure but it works for me. > > actually, it little strange, because, > after modification, first time, it getting segfaults, > later, it works fine. A backtrace says anything useful? lu From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3376 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Wed, 29 May 2013 23:32:20 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b41c46ed1c8d304dddc3f46 X-Trace: ger.gmane.org 1369837953 9935 80.91.229.3 (29 May 2013 14:32:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 14:32:33 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3380-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 29 16:32:33 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UhhQX-0006Fq-68 for gllmg-musl@plane.gmane.org; Wed, 29 May 2013 16:32:33 +0200 Original-Received: (qmail 29727 invoked by uid 550); 29 May 2013 14:32:32 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 29719 invoked from network); 29 May 2013 14:32:32 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=O/ceULVEZ4jVoEVBlaV3Z1vTM5GaPbkDZBBohZt1g9Y=; b=gxwzZuyatzQKJTXN0HvRNxrKE1JIHrr1UYT1D80ICZHeH5jg0j8q9CkC+430YZYusa sESCibDyqxS13IzW2HrefgVTvQaEAtkKwnEUHr+HVvehQq2tnPX0Y6ghLzRgkiZnC5+Q CQTMRi0RZ6mOpWbbSZhXUuCSJ/g1OmfEnnu6ZHjzz1cjhWgXh4cA5i2+6tVIURTSYqoU ZK6vNNi54riC2UWU+LV9IIc9QDEf6Xa11WsQAODvrNzRUj4y2FhqzNLKtplXryqFM5r2 +LjcDGAiufXEG8Aq294sOzmrsmCJ66C5Jz6lDyjRdOX60eEEHO7otTtUGAepsk5OTcEt FHmQ== X-Received: by 10.66.122.39 with SMTP id lp7mr3534457pab.208.1369837940096; Wed, 29 May 2013 07:32:20 -0700 (PDT) In-Reply-To: <51A60C74.6050500@gentoo.org> Xref: news.gmane.org gmane.linux.lib.musl.general:3376 Archived-At: --047d7b41c46ed1c8d304dddc3f46 Content-Type: text/plain; charset=ISO-8859-1 sorry i don't know how to run bt, and i don't have gdb. my hdd info: /dev/sda1 # another linux : LMDE(linux mint based on debian) /dev/sda2 # swap /dev/sda3 # bootstrap-linux (using musl-cross as cross compiler instead of bootstrap-linux built-in). and more additional information about latest git-version musl libc. git pull right now. result: # cd util-linux-2.23/.libs # ./mount /dev/sda1 /mnt EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) < 30 - 40 seconds waiting without return to shell> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out // <-- this is weird. # and umount gets segfaults randomly.. # umount /mnt traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 error:0 in libc.so[7f9c48e16000+72000] Segmentation fault. maybe i should have to build new bootstrap-linux again using new musl libc. On Wed, May 29, 2013 at 11:11 PM, Luca Barbato wrote: > On 05/27/2013 11:40 PM, plan9assembler wrote: > > Hi, i am sure but it works for me. > > > > actually, it little strange, because, > > after modification, first time, it getting segfaults, > > later, it works fine. > > A backtrace says anything useful? > > lu > --047d7b41c46ed1c8d304dddc3f46 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
sorry i don't know how to run= bt, and i don't have gdb.

my hdd info:
/dev/sda1= =A0 # another linux : LMDE(linux mint based on debian)
/dev/sda2= =A0 # swap
/dev/sda3=A0 # bootstrap-linux (using musl-cross as cross compiler in= stead of=A0 bootstrap-linux built-in).

and more additional informati= on about latest git-version musl libc. git pull right now.
re= sult:

# cd util-linux-2.23/.libs
# ./mount /dev/sda1= /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mo= de. Opts: (null)

< 30 - 40=A0 seconds waiting without = return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperatio= n timed out=A0=A0=A0 // <-- this is weird.
#

and umount gets segfaults randomly..
# umount= /mnt
traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72= 447b88 error:0 in libc.so[7f9c48e16000+72000]
Segmentation fa= ult.

maybe i should have to build new bootstrap-linux aga= in using new musl libc.







On Wed, May 29, 2013 at 11:11 PM, = Luca Barbato <lu_zero@gentoo.org> wrote:
On 05/27/2013 11:40 PM, pl= an9assembler wrote:
> Hi, i am sure but it works for me.
>
> actually, it little strange, because,
> after modification, first time, it getting segfaults,
> later, it works fine.

A backtrace says anything useful?

lu

--047d7b41c46ed1c8d304dddc3f46-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3377 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Wed, 29 May 2013 23:41:13 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b15b0d79e597004dddc5f9d X-Trace: ger.gmane.org 1369838487 16295 80.91.229.3 (29 May 2013 14:41:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 14:41:27 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3381-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 29 16:41:27 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UhhZ9-0005M9-1l for gllmg-musl@plane.gmane.org; Wed, 29 May 2013 16:41:27 +0200 Original-Received: (qmail 1985 invoked by uid 550); 29 May 2013 14:41:26 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 1977 invoked from network); 29 May 2013 14:41:25 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=smHkoMc/HalJA8/gDoUwzT+1Z+IeliTTfZ+2dwu4pYA=; b=ZWHGP1WEZUKI7/056U5yS6tDww6ObOg4E0S8fpJsBToKFhW71LWg5+tJo2ai0UCyp+ isodoPKVRjpQzZpKgSOmxPamrt9xFDOrBQ/eS6DWTHuJpVyh/kJjL7LIJhKvrPUJrG8+ 99lxZxjsHOwrAlO9BqdOD+YPSMy7yuHAdUvR/E3ZkuDyTE6NqSQEVG+Ucaryr1pOJhe8 PZiEIvqwJAkDVN/BP0xWAIEU+YFNIwT4HtXR83ciML1Rp9XM0M/O7wgF3m0WvPckBUv4 JW3VTva0UfAKZhHG+YGHiJzLJ6zmsxeIgCUbd+CEJC0fo1GKQWnotyGM5N0tmJpE/Hjf quHQ== X-Received: by 10.66.254.225 with SMTP id al1mr3689961pad.111.1369838473597; Wed, 29 May 2013 07:41:13 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3377 Archived-At: --047d7b15b0d79e597004dddc5f9d Content-Type: text/plain; charset=ISO-8859-1 correction: util-linux umount gets segfaults randomly..(X) util-linux umount gets segfaults always..(O) # ./umount /mnt traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 error:0 in libc.so[7f9c48e16000+72000] Segmentation fault. and busybox umount works fine. On Wed, May 29, 2013 at 11:32 PM, plan9assembler wrote: > sorry i don't know how to run bt, and i don't have gdb. > > my hdd info: > /dev/sda1 # another linux : LMDE(linux mint based on debian) > /dev/sda2 # swap > /dev/sda3 # bootstrap-linux (using musl-cross as cross compiler instead > of bootstrap-linux built-in). > > and more additional information about latest git-version musl libc. git > pull right now. > result: > > # cd util-linux-2.23/.libs > # ./mount /dev/sda1 /mnt > EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) > > < 30 - 40 seconds waiting without return to shell> > > mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out > // <-- this is weird. > # > > and umount gets segfaults randomly.. > # umount /mnt > traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 > error:0 in libc.so[7f9c48e16000+72000] > Segmentation fault. > > maybe i should have to build new bootstrap-linux again using new musl libc. > > > > > > > > On Wed, May 29, 2013 at 11:11 PM, Luca Barbato wrote: > >> On 05/27/2013 11:40 PM, plan9assembler wrote: >> > Hi, i am sure but it works for me. >> > >> > actually, it little strange, because, >> > after modification, first time, it getting segfaults, >> > later, it works fine. >> >> A backtrace says anything useful? >> >> lu >> > > --047d7b15b0d79e597004dddc5f9d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
correction:

util-linux umount gets segfa= ults randomly..(X)
util-linux umount gets segfaults always..(O)

<= /div># ./umount /mnt
traps: umount[9444] general protection ip:7f9c= 48e618fb sp:7fff72447b88 error:0 in libc.so[7f9c48e16000+72000]
Segmentation fault.

and busybox umount works fine.



On Wed, May 29, 2013 at 11:32 PM, plan9assembler &l= t;plan9assemb= ler@gmail.com> wrote:
so= rry i don't know how to run bt, and i don't have gdb.

= my hdd info:
/dev/sda1=A0 # another linux : LMDE(linux mint based on debian)
/dev/sda2=A0 # swap
/dev/sda3=A0 # bootstrap-linux (using musl-cross as cross compiler in= stead of=A0 bootstrap-linux built-in).

and more additional informati= on about latest git-version musl libc. git pull right now.
re= sult:

# cd util-linux-2.23/.libs
# ./mount /dev/sda1= /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mo= de. Opts: (null)

< 30 - 40=A0 seconds waiting without = return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperatio= n timed out=A0=A0=A0 // <-- this is weird.
#

and umount gets segfaults randomly..
# umount= /mnt
traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72= 447b88 error:0 in libc.so[7f9c48e16000+72000]
Segmentation fa= ult.

maybe i should have to build new bootstrap-linux aga= in using new musl libc.






--047d7b15b0d79e597004dddc5f9d-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3378 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Wed, 29 May 2013 22:04:53 +0200 Message-ID: <20130529200453.GC7095@port70.net> References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1369857909 17495 80.91.229.3 (29 May 2013 20:05:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 20:05:09 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3382-gllmg-musl=m.gmane.org@lists.openwall.com Wed May 29 22:05:10 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UhmcN-0002N7-Jt for gllmg-musl@plane.gmane.org; Wed, 29 May 2013 22:05:07 +0200 Original-Received: (qmail 19740 invoked by uid 550); 29 May 2013 20:05:06 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 19732 invoked from network); 29 May 2013 20:05:05 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3378 Archived-At: * plan9assembler [2013-05-29 23:41:13 +0900]: > util-linux umount gets segfaults randomly..(X) > util-linux umount gets segfaults always..(O) > > # ./umount /mnt > traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 > error:0 in libc.so[7f9c48e16000+72000] > Segmentation fault. it seems util-linux uses sscanf with %ms to parse mtab in libmount in tab_parse.c after i fixed that mount and umount does not segfault here (used fixed size malloc and %s instead) From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3379 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 07:07:26 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8ffbac036c12e004dde29b72 X-Trace: ger.gmane.org 1369865259 30698 80.91.229.3 (29 May 2013 22:07:39 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 22:07:39 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3383-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 00:07:40 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UhoWy-0005Qv-4W for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 00:07:40 +0200 Original-Received: (qmail 28595 invoked by uid 550); 29 May 2013 22:07:39 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 28587 invoked from network); 29 May 2013 22:07:38 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=Toym478s761F12kv9OplrdjEA2jdkWv8eI9YxzwcyNI=; b=h6zx3B4GJlVXWQSrEVeXjyOGoNYQemJDYEcwvzrT/P/sop2Lh5sHjMY3tTo9bJXljk jg2cgh+oOh+Mw5EsSUinMIvqXrOtB4PuoEwvDU6lGe5c9DGca4LeC4Gvdcyz3dOYBbZA hEphfHqtw2nSKoaOWjffRvSLj+gDZ+4iW2sx00geOsvOgbFzQFdmkxCKbId+AN5Zz66b pX99JsDp92fNLeTWz3UVSZxHvr6bLQbC5pZDL8CAAptXkCVSpjHoPwXOaE8UXF4lkT+h PVEL2vRsLRwUVFFjNCSHJazhqSF06OXKkCOqO3ubFgPMn3GOBNBCxovJEpaJb0Yca6K8 K3BQ== X-Received: by 10.66.119.145 with SMTP id ku17mr5306914pab.204.1369865246739; Wed, 29 May 2013 15:07:26 -0700 (PDT) In-Reply-To: <20130529200453.GC7095@port70.net> Xref: news.gmane.org gmane.linux.lib.musl.general:3379 Archived-At: --e89a8ffbac036c12e004dde29b72 Content-Type: text/plain; charset=ISO-8859-1 could you send me the patch? i will test it. BTW, in latest musl-git version, i found something wrong with ioctl.h #if 1 #define _IO(a,b) _IOC(0U,(a),(b),0) //? #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? #else #define _IO(a,b) _IOC(0,(a),(b),0) //ok #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok #endif #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok if i set 0, it works fine run as "./mount", but set 1 then, # ./mount /dev/sda1 /mnt EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) < 30 - 40 seconds waiting without return to shell> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out // <-- this is weird. # On Thu, May 30, 2013 at 5:04 AM, Szabolcs Nagy wrote: > * plan9assembler [2013-05-29 23:41:13 +0900]: > > util-linux umount gets segfaults randomly..(X) > > util-linux umount gets segfaults always..(O) > > > > # ./umount /mnt > > traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 > > error:0 in libc.so[7f9c48e16000+72000] > > Segmentation fault. > > it seems util-linux uses sscanf with %ms to parse mtab > in libmount in tab_parse.c > > after i fixed that mount and umount does not segfault here > (used fixed size malloc and %s instead) > --e89a8ffbac036c12e004dde29b72 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
could you send me the patch? i wi= ll test it.

BTW, in latest musl-git version, i found something= wrong with ioctl.h

#if 1=A0
#define _IO(a,b) _= IOC(0U,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
#define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
<= br>
if i set 0, it works fine run as "./mount", but set 1 th= en,

# ./mount /dev/sda1 /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

< 30 - 40  seconds waiting without return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out
// <-- this is weird.
#




On Thu, May 30, 2013 at 5:04 AM, Szabolcs Nagy <nsz@port70= .net> wrote:
* plan9assembler <plan9assembler@gmail.com> [2013-05-29 23:41:13 = +0900]:
> util-linux umount gets segfaults randomly..(X)
> util-linux umount gets segfaults always..(O)
>
> # ./umount /mnt
> traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88=
> error:0 in libc.so[7f9c48e16000+72000]
> Segmentation fault.

it seems util-linux uses sscanf with %ms to parse mtab
in libmount in tab_parse.c

after i fixed that mount and umount does not segfault here
(used fixed size malloc and %s instead)

--e89a8ffbac036c12e004dde29b72-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3380 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 07:17:53 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b5d4342cddcca04dde2c02e X-Trace: ger.gmane.org 1369865888 4809 80.91.229.3 (29 May 2013 22:18:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 May 2013 22:18:08 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3384-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 00:18:09 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uhoh5-0005AA-Ay for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 00:18:07 +0200 Original-Received: (qmail 3487 invoked by uid 550); 29 May 2013 22:18:06 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 3471 invoked from network); 29 May 2013 22:18:06 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=RJGFu82RxczxFV1V2iGBiyzlUYKkfYHBUy76ulAIjk4=; b=Bnbr1XOilJO1OJ3Gkc7nxezg8zS7f+zX4aVdXGuNoWQEUKN921ngSl1t2pgHtaANq+ dfQvq/5koqiPdjAOucfpgCMDvHhIt48ZbJkGuqkr5zQq5E7L3aqivsEDDEwFUEXllRZY AlFNdam7xuYmEchXvSYKMBs3EOsD3t3mRFXRLORJPldzQdxnxWXtnwIoAVfL0yy2ndNW dMOaWrDd1QdyFEAG/fJxNTzZWZEUFh2ZONKSB47FzyIAUQFb/hRcsmpz/SssPq9Lbmxq VxC7hC8WRfZnoKd5/s19ApthAnRYojtjCYMDjoY1ch3Ap/Z8EY8keD1TLbvNf9LqFvPJ Xmxw== X-Received: by 10.66.218.200 with SMTP id pi8mr5516162pac.40.1369865873905; Wed, 29 May 2013 15:17:53 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3380 Archived-At: --047d7b5d4342cddcca04dde2c02e Content-Type: text/plain; charset=ISO-8859-1 correction: #if 1 #define _IO(a,b) _IOC(0U,(a),(b),0) //? #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? #else #define _IO(a,b) _IOC(0,(a),(b),0) //ok #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok #endif #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok - #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok On Thu, May 30, 2013 at 7:07 AM, plan9assembler wrote: > could you send me the patch? i will test it. > > BTW, in latest musl-git version, i found something wrong with ioctl.h > > #if 1 > #define _IO(a,b) _IOC(0U,(a),(b),0) //? > #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? > #else > #define _IO(a,b) _IOC(0,(a),(b),0) //ok > #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok > #endif > > #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok > #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > > if i set 0, it works fine run as "./mount", but set 1 then, > > > # ./mount /dev/sda1 /mnt > EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) > > < 30 - 40 seconds waiting without return to shell> > > mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out > // <-- this is weird. > # > > > > > > On Thu, May 30, 2013 at 5:04 AM, Szabolcs Nagy wrote: > >> * plan9assembler [2013-05-29 23:41:13 +0900]: >> > util-linux umount gets segfaults randomly..(X) >> > util-linux umount gets segfaults always..(O) >> > >> > # ./umount /mnt >> > traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 >> > error:0 in libc.so[7f9c48e16000+72000] >> > Segmentation fault. >> >> it seems util-linux uses sscanf with %ms to parse mtab >> in libmount in tab_parse.c >> >> after i fixed that mount and umount does not segfault here >> (used fixed size malloc and %s instead) >> > > --047d7b5d4342cddcca04dde2c02e Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
correction:

#if 1=A0
#define _IO(a,b) _IO= C(0U,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
- #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
+ #define = _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok


On Thu, May 30, 2013 at 7:07 AM, plan9as= sembler <plan9assembler@gmail.com> wrote:
could you send me the patch? i wi= ll test it.

BTW, in latest musl-git version, i found something= wrong with ioctl.h

#if 1=A0
#define _IO(a,b) _= IOC(0U,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
#define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
<= br>
if i set 0, it works fine run as "./mount", but set 1 th= en,


# ./mount /dev/sda1 /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

< 30 - 40  seconds waiting without return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out
// <-- this is weird.
#




On Thu, Ma= y 30, 2013 at 5:04 AM, Szabolcs Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [20= 13-05-29 23:41:13 +0900]:
> util-linux umount gets segfaults randomly..(X)
> util-linux umount gets segfaults always..(O)
>
> # ./umount /mnt
> traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88=
> error:0 in libc.so[7f9c48e16000+72000]
> Segmentation fault.

it seems util-linux uses sscanf with %ms to parse mtab
in libmount in tab_parse.c

after i fixed that mount and umount does not segfault here
(used fixed size malloc and %s instead)


--047d7b5d4342cddcca04dde2c02e-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3382 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 15:11:09 +0900 Message-ID: References: <20130525162604.GY20323@brightrain.aerifal.cx> <20130526091432.GE31915@port70.net> <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7bf17d6c4dece104dde95d5a X-Trace: ger.gmane.org 1369894283 31859 80.91.229.3 (30 May 2013 06:11:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 30 May 2013 06:11:23 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3386-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 08:11:24 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uhw54-00076U-WD for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 08:11:23 +0200 Original-Received: (qmail 16209 invoked by uid 550); 30 May 2013 06:11:21 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 16201 invoked from network); 30 May 2013 06:11:21 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=WTutAe0MT7dnxGKox8C2Ht+KTgYCJ2f37eVrWKEqpzs=; b=ojB7WRC8qq+mUxziBtAaqOnuc/gnaxQsNZCKxGCvEmfx9YwNb9FuCMMXT63t9qYBn4 VpfTBqFcJYv4saCGCuI+fKxqRx1JO0Y+Qf+18uI9bgj2ybPuLb8OvurqTRbcQTiwWmrW 9oyUhOMxlVl+39hRcVwEMLAA9PQkpPtgr4cFTJYbO1hzxIjwDPV9LUZWk064Fzfn7Z59 2Oth7RVYS2zLUWlv2sz7nUvaC1WHitfgwLx2jfdK2mKuQlSkw4TcHiUeKD0pjg+v0t27 9O3CtYArp2pXjxxG+zdxQ1t5iAF1W5M5Da9dgzFOUpGEuLdrNkQxjzedeI2JkNqtshEa iTeA== X-Received: by 10.66.100.231 with SMTP id fb7mr6689558pab.162.1369894269347; Wed, 29 May 2013 23:11:09 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3382 Archived-At: --047d7bf17d6c4dece104dde95d5a Content-Type: text/plain; charset=ISO-8859-1 here is backtrace of gdb for "./mount /dev/sda1 /mnt" Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 (gdb) at #0 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 #1 0x00007ffff79614b6 in unmangle_string (s=0x6164732f7665642f
) at ./include/mangle.h:17 #2 mnt_parse_table_line (s=0x7fffffffe640 "/dev/sda1 /mnt ext4 rw 0 0", fs=0x608f00) at libmount/src/tab_parse.c:78 #3 mnt_table_parse_next (tb=tb@entry=0x7ffff7ffb360, f=f@entry=0x608a00, fs=fs@entry=0x608f00, filename=filename@entry=0x7ffff7973e78 "/etc/mtab", nlines=nlines@entry=0x7fffffffeab4) at at libmount/src/tab_parse.c:396 #4 0x00007ffff79618e7 in mnt_table_parse_stream (tb=tb@entry=0x7ffff7ffb360, f=f@entry=0x608a00, filename=, filename@entry=0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_parse.c:529 #5 0x00007ffff7961e26 in mnt_table_parse_file (tb=0x7ffff7ffb360, filename=0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_parse.c:584 #6 0x00007ffff796246f in mnt_table_parse_mtab (tb=0x7ffff7ffb360, filename=0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_parse.c:968 #7 0x00007ffff794fbf5 in mnt_context_get_mtab (cxt=cxt@entry=0x7ffff7ffb260, tb=tb@entry=0x7fffffffec90) at libmount/src/context.c:958 #8 0x0000000000403c7d in print_all (show_label=0, pattern=0x0, cxt=0x7ffff7ffb260) at sys-utils/mount.c:130 #9 main (argc=0, argv=0x7fffffffed40) at sys-utils/mount.c:1004 (gdb) On Thu, May 30, 2013 at 7:17 AM, plan9assembler wrote: > correction: > > #if 1 > #define _IO(a,b) _IOC(0U,(a),(b),0) //? > #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? > #else > #define _IO(a,b) _IOC(0,(a),(b),0) //ok > #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok > #endif > > #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok > - #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > > > On Thu, May 30, 2013 at 7:07 AM, plan9assembler wrote: > >> could you send me the patch? i will test it. >> >> BTW, in latest musl-git version, i found something wrong with ioctl.h >> >> #if 1 >> #define _IO(a,b) _IOC(0U,(a),(b),0) //? >> #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? >> #else >> #define _IO(a,b) _IOC(0,(a),(b),0) //ok >> #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok >> #endif >> >> #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok >> #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok >> >> if i set 0, it works fine run as "./mount", but set 1 then, >> >> >> # ./mount /dev/sda1 /mnt >> EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) >> >> < 30 - 40 seconds waiting without return to shell> >> >> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out >> // <-- this is weird. >> # >> >> >> >> >> >> On Thu, May 30, 2013 at 5:04 AM, Szabolcs Nagy wrote: >> >>> * plan9assembler [2013-05-29 23:41:13 +0900]: >>> > util-linux umount gets segfaults randomly..(X) >>> > util-linux umount gets segfaults always..(O) >>> > >>> > # ./umount /mnt >>> > traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88 >>> > error:0 in libc.so[7f9c48e16000+72000] >>> > Segmentation fault. >>> >>> it seems util-linux uses sscanf with %ms to parse mtab >>> in libmount in tab_parse.c >>> >>> after i fixed that mount and umount does not segfault here >>> (used fixed size malloc and %s instead) >>> >> >> > --047d7bf17d6c4dece104dde95d5a Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
here is backtrace of gdb for "./mount /dev/sda1 /mnt"
<= br>
Program received signal SIGSEGV, Segmentation fault.
0x00= 007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1
(gdb) at
#0=A0 0x00007ffff7dd58fb in strlen () from /lib/ld-= musl-x86_64.so.1
#1=A0 0x00007ffff79614b6 in unmangle_string (s=3D= 0x6164732f7665642f <Address 0x616732f7665642 out of bounds>) at ./inc= lude/mangle.h:17
#2=A0 mnt_parse_table_line (s=3D0x7fffffffe640 "/dev/sda1 /mnt e= xt4 rw 0 0", fs=3D0x608f00) at libmount/src/tab_parse.c:78
#3= =A0 mnt_table_parse_next (tb=3Dtb@entry=3D0x7ffff7ffb360, f=3Df@entry=3D0x6= 08a00, fs=3Dfs@entry=3D0x608f00, filename=3Dfilename@entry=3D0x7ffff7973e78= "/etc/mtab", nlines=3Dnlines@entry=3D0x7fffffffeab4) at at libmo= unt/src/tab_parse.c:396
#4=A0 0x00007ffff79618e7 in mnt_table_parse_stream (tb=3Dtb@entry=3D0= x7ffff7ffb360, f=3Df@entry=3D0x608a00, filename=3D<optimzed out>, fil= ename@entry=3D0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_par= se.c:529
#5=A0 0x00007ffff7961e26 in mnt_table_parse_file (tb=3D0x7ffff7ffb360= , filename=3D0x7ffff7973e78 "/etc/mtab") at libmount/src/tab_pars= e.c:584
#6=A0 0x00007ffff796246f in mnt_table_parse_mtab (tb=3D0x7ffff7f= fb360, filename=3D0x7ffff7973e78 "/etc/mtab") at libmount/src/tab= _parse.c:968
#7=A0 0x00007ffff794fbf5 in mnt_context_get_mtab (cxt=3Dcxt@entry=3D0= x7ffff7ffb260, tb=3Dtb@entry=3D0x7fffffffec90) at libmount/src/context.c:95= 8
#8=A0 0x0000000000403c7d in print_all (show_label=3D0, pattern= =3D0x0, cxt=3D0x7ffff7ffb260) at sys-utils/mount.c:130
#9=A0 main (argc=3D0, argv=3D0x7fffffffed40) at sys-utils/mount.c:100= 4
(gdb)



On = Thu, May 30, 2013 at 7:17 AM, plan9assembler <plan9assembler@gmail= .com> wrote:
correction:

#if 1=A0
#define _IO(a,b) _IOC(0U,(a),(b),0)=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
- #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
+ #d= efine _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok


On Thu, May 30, 2013 at 7:07 AM, plan9as= sembler <plan9assembler@gmail.com> wrote:
could you send me the patch? i wi= ll test it.

BTW, in latest musl-git version, i found something= wrong with ioctl.h

#if 1=A0
#define _IO(a,b) _= IOC(0U,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 //?
#define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
#els= e
#define _IO(a,b) _IOC(0,(a),(b),0)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 //ok
#define _IOW(a,b,c) _IOC(1,(a),= (b),sizeof(c))=A0=A0 //ok
#endif

#define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c))=A0 //ok
#define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
<= br>
if i set 0, it works fine run as "./mount", but set 1 th= en,


# ./mount /dev/sda1 /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

< 30 - 40  seconds waiting without return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out
// <-- this is weird.
#


=

On Thu, May 30, 2013 at 5:04 AM, Szabolc= s Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [20= 13-05-29 23:41:13 +0900]:
> util-linux umount gets segfaults randomly..(X)
> util-linux umount gets segfaults always..(O)
>
> # ./umount /mnt
> traps: umount[9444] general protection ip:7f9c48e618fb sp:7fff72447b88=
> error:0 in libc.so[7f9c48e16000+72000]
> Segmentation fault.

it seems util-linux uses sscanf with %ms to parse mtab
in libmount in tab_parse.c

after i fixed that mount and umount does not segfault here
(used fixed size malloc and %s instead)



--047d7bf17d6c4dece104dde95d5a-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3383 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 08:43:54 +0200 Message-ID: <20130530064353.GE7095@port70.net> References: <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="vkogqOf2sHV7VnPd" X-Trace: ger.gmane.org 1369896246 17860 80.91.229.3 (30 May 2013 06:44:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 30 May 2013 06:44:06 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3387-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 08:44:07 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uhwak-0008Eg-IC for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 08:44:06 +0200 Original-Received: (qmail 31814 invoked by uid 550); 30 May 2013 06:44:06 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 31806 invoked from network); 30 May 2013 06:44:05 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3383 Archived-At: --vkogqOf2sHV7VnPd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline * plan9assembler [2013-05-30 15:11:09 +0900]: > here is backtrace of gdb for "./mount /dev/sda1 /mnt" > > Program received signal SIGSEGV, Segmentation fault. > 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 > (gdb) at > #0 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 > #1 0x00007ffff79614b6 in unmangle_string (s=0x6164732f7665642f
0x616732f7665642 out of bounds>) at ./include/mangle.h:17 > #2 mnt_parse_table_line (s=0x7fffffffe640 "/dev/sda1 /mnt ext4 rw 0 0", > fs=0x608f00) at libmount/src/tab_parse.c:78 > #3 mnt_table_parse_next (tb=tb@entry=0x7ffff7ffb360, f=f@entry=0x608a00, > fs=fs@entry=0x608f00, filename=filename@entry=0x7ffff7973e78 "/etc/mtab", > nlines=nlines@entry=0x7fffffffeab4) at at libmount/src/tab_parse.c:396 yes this is the %ms issue i was talking about > On Thu, May 30, 2013 at 7:17 AM, plan9assembler wrote: > > correction: > > > > #if 1 > > #define _IO(a,b) _IOC(0U,(a),(b),0) //? > > #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? > > #else > > #define _IO(a,b) _IOC(0,(a),(b),0) //ok > > #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok > > #endif > > > > #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok > > - #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok this does not make sense to me > > On Thu, May 30, 2013 at 7:07 AM, plan9assembler wrote: > >> could you send me the patch? i will test it. my super sophisticated patch has no warranty you could do better parsing or wait for musl to support %ms --vkogqOf2sHV7VnPd Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="ms.diff" --- util-linux-2.23/libmount/src/tab_parse.c 2013-04-12 12:04:05.000000000 +0200 +++ util-linux/libmount/src/tab_parse.c 2013-05-30 08:37:39.000000000 +0200 @@ -61,16 +61,18 @@ int rc, n = 0, xrc; char *src = NULL, *fstype = NULL, *optstr = NULL; +#undef UL_SCNsA +#define UL_SCNsA "%s" rc = sscanf(s, UL_SCNsA" " /* (1) source */ UL_SCNsA" " /* (2) target */ UL_SCNsA" " /* (3) FS type */ UL_SCNsA" " /* (4) options */ "%n", /* byte count */ - &src, - &fs->target, - &fstype, - &optstr, + src=malloc(200), + fs->target=malloc(200), + fstype=malloc(200), + optstr=malloc(200), &n); xrc = rc; @@ -147,9 +149,9 @@ &fs->id, &fs->parent, &maj, &min, - &fs->root, - &fs->target, - &fs->vfs_optstr, + fs->root=malloc(200), + fs->target=malloc(200), + fs->vfs_optstr=malloc(200), &end); if (rc >= 7 && end > 0) @@ -169,9 +171,9 @@ UL_SCNsA" " /* (9) source */ UL_SCNsA, /* (10) fs options (fs specific) */ - &fstype, - &src, - &fs->fs_optstr); + fstype=malloc(200), + src=malloc(200), + fs->fs_optstr=malloc(200)); if (rc >= 10) { fs->flags |= MNT_FS_KERNEL; @@ -285,8 +287,8 @@ "%jd" /* (4) used */ "%d", /* priority */ - &src, - &fs->swaptype, + src=malloc(200), + fs->swaptype=malloc(200), &fsz, &usz, &fs->priority); --vkogqOf2sHV7VnPd-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3384 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 16:26:13 +0900 Message-ID: References: <20130527142929.GF31915@port70.net> <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7b6d7c1ccd747504ddea6913 X-Trace: ger.gmane.org 1369898788 10235 80.91.229.3 (30 May 2013 07:26:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 30 May 2013 07:26:28 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3388-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 09:26:29 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UhxFk-0005rt-5M for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 09:26:28 +0200 Original-Received: (qmail 23764 invoked by uid 550); 30 May 2013 07:26:26 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 23750 invoked from network); 30 May 2013 07:26:26 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=V57zJuyNmhVqT+pmMYDJqwgn4yyl1EBbmiwRP3Ob6OU=; b=WoBD4+nR/PML2Al26x8vPYp8A9zmQCHjHaUoInD5a/KgfrAA7CZYC+8S0u7vJ6Kj1O Q9wvDmuh0lKe7UKINlAavHVwEv1Znv0eiNu73hLhfw00YQHMOCwGbD1MO8yIQVuSv0Gw jdEg9IVMjjPXnxXQtMxG56FpcKUy/DCA4pXIvwIPzme72npjG54bOldU5gUlugZmhqA2 DFDiB0KMEbRPkLuOp2iywGwpc4ZenVuXR9Q0nqpRut5sAzO7H5ZG++7TfC+JB4f1t6lk rqh4gJl8WkSB+yGIPy0n5yo2B8kO6CueUR04wa0GieAPqdvsgbCLbpTNortXW8K2bRQM aYgg== X-Received: by 10.68.106.130 with SMTP id gu2mr4341101pbb.111.1369898773998; Thu, 30 May 2013 00:26:13 -0700 (PDT) In-Reply-To: <20130530064353.GE7095@port70.net> Xref: news.gmane.org gmane.linux.lib.musl.general:3384 Archived-At: --047d7b6d7c1ccd747504ddea6913 Content-Type: text/plain; charset=ISO-8859-1 Hi, thanks for the patch, i tested it. it still gets same segfaults, same bt gdb result. # gdb ./mount /dev/sda1 /mnt r bt and it is clear to me that latest musl libc[2013/05/29] contain new bug, because, below abnormal operation never happened before. (musl version git pulled at 2013/05/03) # ./mount /dev/sda1 /mnt EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) < 30 - 40 seconds waiting without return to shell> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out // <-- this is weird. # On Thu, May 30, 2013 at 3:43 PM, Szabolcs Nagy wrote: > * plan9assembler [2013-05-30 15:11:09 +0900]: > > here is backtrace of gdb for "./mount /dev/sda1 /mnt" > > > > Program received signal SIGSEGV, Segmentation fault. > > 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 > > (gdb) at > > #0 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 > > #1 0x00007ffff79614b6 in unmangle_string (s=0x6164732f7665642f
> 0x616732f7665642 out of bounds>) at ./include/mangle.h:17 > > #2 mnt_parse_table_line (s=0x7fffffffe640 "/dev/sda1 /mnt ext4 rw 0 0", > > fs=0x608f00) at libmount/src/tab_parse.c:78 > > #3 mnt_table_parse_next (tb=tb@entry=0x7ffff7ffb360, f=f@entry > =0x608a00, > > fs=fs@entry=0x608f00, filename=filename@entry=0x7ffff7973e78 > "/etc/mtab", > > nlines=nlines@entry=0x7fffffffeab4) at at libmount/src/tab_parse.c:396 > > yes this is the %ms issue i was talking about > > > On Thu, May 30, 2013 at 7:17 AM, plan9assembler < > plan9assembler@gmail.com>wrote: > > > correction: > > > > > > #if 1 > > > #define _IO(a,b) _IOC(0U,(a),(b),0) //? > > > #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //? > > > #else > > > #define _IO(a,b) _IOC(0,(a),(b),0) //ok > > > #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) //ok > > > #endif > > > > > > #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) //ok > > > - #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > > > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok > > this does not make sense to me > > > > On Thu, May 30, 2013 at 7:07 AM, plan9assembler < > plan9assembler@gmail.com>wrote: > > >> could you send me the patch? i will test it. > > my super sophisticated patch has no warranty > you could do better parsing or wait for musl to support %ms > > --047d7b6d7c1ccd747504ddea6913 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi, thanks for the patch, i tested it.=

it still gets same segfaults, same bt gdb result.

# gdb ./mount /dev/sda1 /mnt
r
bt

and it is clear to me that latest musl libc[2013/05/29] contain n= ew bug, because,
below abnormal operation never happened before. (= musl version git pulled at 2013/05/03)

# ./mount /dev/sda1 /mnt
EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)

< 30 - 40  seconds waiting without return to shell>

mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out
// <-- this is weird.
#




On Thu, May 30, 2013 at 3:43 PM, Szabolcs Nagy <nsz@= port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [2013-05-30 15:11:09 = +0900]:
> here is backtrace of gdb for "./mount /dev/sda1= /mnt"
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1
> (gdb) at
> #0 =A00x00007ffff7dd58fb in strlen () from /lib/ld-musl-x86_64.so.1 > #1 =A00x00007ffff79614b6 in unmangle_string (s=3D0x6164732f7665642f &l= t;Address
> 0x616732f7665642 out of bounds>) at ./include/mangle.h:17
> #2 =A0mnt_parse_table_line (s=3D0x7fffffffe640 "/dev/sda1 /mnt ex= t4 rw 0 0",
> fs=3D0x608f00) at libmount/src/tab_parse.c:78
> #3 =A0mnt_table_parse_next (tb=3Dtb@entry=3D0x7ffff7ffb360, f=3Df@entr= y=3D0x608a00,
> fs=3Dfs@entry=3D0x608f00, filename=3Dfilename@entry=3D0x7ffff7973e78 &= quot;/etc/mtab",
> nlines=3Dnlines@entry=3D0x7fffffffeab4) at at libmount/src/tab_parse.c= :396

yes this is the %ms issue i was talking about

> On Thu, May 30, 2013 at 7:17 AM, plan9assembler <plan9assembler@gmail.com>wrote:
> > correction:
> >
> > #if 1
> > #define _IO(a,b) _IOC(0U,(a),(b),0) =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 //?
> > #define _IOW(a,b,c) _IOC(1U,(a),(b),sizeof(c)) //?
> > #else
> > #define _IO(a,b) _IOC(0,(a),(b),0) =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 //ok
> > #define _IOW(a,b,c) _IOC(1,(a),(b),sizeof(c)) =A0 //ok
> > #endif
> >
> > #define _IOR(a,b,c) _IOC(2U,(a),(b),sizeof(c)) =A0//ok
> > - #define _IOW(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok
> > + #define _IOWR(a,b,c) _IOC(3U,(a),(b),sizeof(c)) //ok

this does not make sense to me

> > On Thu, May 30, 2013 at 7:07 AM, plan9assembler <plan9assembler@gmail.com>wrote:
> >> could you send me the patch? i will test it.

my super sophisticated patch has no warranty
you could do better parsing or wait for musl to support %ms


--047d7b6d7c1ccd747504ddea6913-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3385 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Thu, 30 May 2013 10:37:11 +0200 Message-ID: <20130530083711.GF7095@port70.net> References: <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1369903047 20374 80.91.229.3 (30 May 2013 08:37:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 30 May 2013 08:37:27 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3389-gllmg-musl=m.gmane.org@lists.openwall.com Thu May 30 10:37:28 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UhyMN-0004Yt-8R for gllmg-musl@plane.gmane.org; Thu, 30 May 2013 10:37:23 +0200 Original-Received: (qmail 17981 invoked by uid 550); 30 May 2013 08:37:22 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 17973 invoked from network); 30 May 2013 08:37:22 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3385 Archived-At: * plan9assembler [2013-05-30 16:26:13 +0900]: > > it still gets same segfaults, same bt gdb result. > if you get the exact same segfault then you do something wrong ..or malloc(200) is not enough > and it is clear to me that latest musl libc[2013/05/29] contain new bug, > because, > below abnormal operation never happened before. (musl version git pulled at > 2013/05/03) > > # ./mount /dev/sda1 /mnt > EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) > > < 30 - 40 seconds waiting without return to shell> > > mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out > // <-- this is weird. > # works here fine since you have local modifications i'd check those first i doubt that latest musl has any related bug but you could easily prove me wrong with a strace that shows bad flags passed to some syscall From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3389 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 2 Jun 2013 08:14:12 +0900 Message-ID: References: <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> <20130530083711.GF7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=047d7bf17d6cb1163404de1fe33f X-Trace: ger.gmane.org 1370128465 2559 80.91.229.3 (1 Jun 2013 23:14:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 1 Jun 2013 23:14:25 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3393-gllmg-musl=m.gmane.org@lists.openwall.com Sun Jun 02 01:14:26 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uiv0D-0002EQ-UW for gllmg-musl@plane.gmane.org; Sun, 02 Jun 2013 01:14:26 +0200 Original-Received: (qmail 24006 invoked by uid 550); 1 Jun 2013 23:14:24 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 23998 invoked from network); 1 Jun 2013 23:14:24 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=2ErT8svIJmHflvLRl48iFlQJc0CNm3fGBBi+fmnpxNk=; b=uDqhpiX3mUtf+5GwgvPNZa8M38pbUVsgzQFdAjQjsfm7f0hmUE3EibPetjKA6A6xdU IOULkMHOjLZ58gFFwbgKitd2sGbOGbGnsKKHblNstudT2ZoZyfVeiVHwbnSdDJ83wtUl mr2E88wx1FzXMwnaSkp7lYSXWmGQHZOf0+OSN4tCv52x6kZrA+CqCZatzT1mMZzROWCn SQpdfnEdgGRaEaH1A3hcZ0JhyoQprYR+W55Ys7VfJRHEEshaVLKoPcCoZV2ImA1nCC39 MMb1uF7pHjATYR9nWqUudballYRC8dAnz+ORrMDovG8ydNGUk9bLiU+Q0PwWl8eBljoe 216A== X-Received: by 10.66.100.231 with SMTP id fb7mr18715884pab.162.1370128452227; Sat, 01 Jun 2013 16:14:12 -0700 (PDT) In-Reply-To: <20130530083711.GF7095@port70.net> Xref: news.gmane.org gmane.linux.lib.musl.general:3389 Archived-At: --047d7bf17d6cb1163404de1fe33f Content-Type: text/plain; charset=ISO-8859-1 Hi, latest musl libc seems to fixes mount segfault error partially. (mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out) rebuild and test vanilla util-linux-2.23 result same. tested util-linux-2.23.1 same. tested gcc-4.8.1 same. sscanf "%ms" -> "%s" with malloc doesn't fixed the issue here. with patch or without it result same. i compile strace-4.7 to trace the bug, but get some build error: gcc -Wall -Wwrite-string -g -O2 -o strace strace.o syscall.o count.o util.o desc.o file.o ipc.o io.o ioctl.o mem.o net.o process.o bjm.o quota.o resource.o signal.o sock.o system.o term.o time.o scsi.o stream.o block.o pathtrace.o mtd.o vsprintf.o loop.o syscall.o:(.rodata+0x28080): undefined reference to `sys_getdents64' syscall.o:(.rodata+0x2b100): undefined reference to `sys_truncate64' syscall.o:(.rodata+0x2b118): undefined reference to `sys_ftruncate64' syscall.o:(.rodata+0x2b388): undefined reference to `sys_getdents64' syscall.o:(.rodata+0x2dd00): undefined reference to `sys_getdents64' BTW, i was quite surprised by base packages are so much "glibc-centric".. On Thu, May 30, 2013 at 5:37 PM, Szabolcs Nagy wrote: > * plan9assembler [2013-05-30 16:26:13 +0900]: > > > > it still gets same segfaults, same bt gdb result. > > > > if you get the exact same segfault then you do something wrong > ..or malloc(200) is not enough > > > and it is clear to me that latest musl libc[2013/05/29] contain new bug, > > because, > > below abnormal operation never happened before. (musl version git pulled > at > > 2013/05/03) > > > > # ./mount /dev/sda1 /mnt > > EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) > > > > < 30 - 40 seconds waiting without return to shell> > > > > mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out > > // <-- this is weird. > > # > > works here fine > since you have local modifications i'd check those first > > i doubt that latest musl has any related bug > > but you could easily prove me wrong with a strace > that shows bad flags passed to some syscall > > --047d7bf17d6cb1163404de1fe33f Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi,

latest= musl libc seems to fixes mount segfault error partially.
(mount: /mnt: = filesystem mounted, but mount(8) failedOperation timed out)
rebuil= d and test vanilla util-linux-2.23 result same.
tested util-linux-2.23.1 same.
tested gcc-4.8.1 sa= me.

sscanf "%ms" -> "%s" wit= h malloc doesn't fixed the issue here.
with patch or without i= t result same.

i compile strace-4.7 to trace the bug, but get some build error:<= br>
gcc -Wall -Wwrite-string -g -O2 -o strace strace.o syscall.o count= .o util.o desc.o file.o ipc.o io.o ioctl.o mem.o net.o process.o bjm.o quot= a.o resource.o signal.o sock.o system.o term.o time.o scsi.o stream.o block= .o pathtrace.o mtd.o vsprintf.o loop.o
syscall.o:(.rodata+0x28080): undefined reference to `sys_getdents64&#= 39;
syscall.o:(.rodata+0x2b100): undefined reference to `sys_truncate64&= #39;
syscall.o:(.rodata+0x2b118): undefined reference to `sys_ftruncate6= 4'
syscall.o:(.rodata+0x2b388): undefined reference to `sys_getdents64'syscall.o:(.rodata+0x2dd00): undefined reference to `sys_getdents64'
BTW, i was quite surprised by base packages are so much &qu= ot;glibc-centric"..



On Thu, May 30, 2013 at 5:37 PM, = Szabolcs Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [2013-05-30 16:26:13 = +0900]:
>
> it still gets same segfaults, same bt gdb result.
>

if you get the exact same segfault then you do something wrong
..or malloc(200) is not enough

> and it is clear to me that latest musl libc[2013/05/29] contain new bu= g,
> because,
> below abnormal operation never happened before. (musl version git pull= ed at
> 2013/05/03)
>
> # ./mount /dev/sda1 /mnt
> EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null= )
>
> < 30 - 40 =A0seconds waiting without return to shell>
>
> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed ou= t
> // <-- this is weird.
> #

works here fine
since you have local modifications i'd check those first

i doubt that latest musl has any related bug

but you could easily prove me wrong with a strace
that shows bad flags passed to some syscall


--047d7bf17d6cb1163404de1fe33f-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3390 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 2 Jun 2013 08:16:47 +0900 Message-ID: References: <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> <20130530083711.GF7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=e89a8ffbae59f7dc2704de1fec8e X-Trace: ger.gmane.org 1370128621 3952 80.91.229.3 (1 Jun 2013 23:17:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 1 Jun 2013 23:17:01 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3394-gllmg-musl=m.gmane.org@lists.openwall.com Sun Jun 02 01:17:02 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uiv2i-0003MX-Ui for gllmg-musl@plane.gmane.org; Sun, 02 Jun 2013 01:17:01 +0200 Original-Received: (qmail 25952 invoked by uid 550); 1 Jun 2013 23:17:00 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 25941 invoked from network); 1 Jun 2013 23:16:59 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=XxmzCDt7cvg/+cwGovuMkJIfoZZTsP2hvF66WJR6X14=; b=jz5vPuEaBXRYSigoEO+SCqThdkXB90js8QyPZgbXEWw7Qg6S3Gnu7a/ncCm+5bMREC wPv+h9IC1idPM3JXBrjNGG4WJaCc0LOAQh0ueoV6jsmBzL+SMeBphYStp9UHwOjfDFbh v7CjQhYNStXbpkvgZMy5ep6KSks0aXSvGtprgOz/REgGcOybocJyqjcchuMkjvLH2Oga qZ3NAg9pES4bzTQQUN/a/uVx0w2X1aDAPQHdSlqwQ6xXRLQAXAm1EKaZ1BCqE7mAGsTW NNH1hW33mC1XPGJ+OUAYjlYMAOVdT+k6XR6oX5a4cyZuZJOyQ/35YhcLEEQzIRZAv8Ub kqWw== X-Received: by 10.68.134.40 with SMTP id ph8mr6404660pbb.177.1370128607860; Sat, 01 Jun 2013 16:16:47 -0700 (PDT) In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3390 Archived-At: --e89a8ffbae59f7dc2704de1fec8e Content-Type: text/plain; charset=ISO-8859-1 ah! util-linux umount gets segfault always. On Sun, Jun 2, 2013 at 8:14 AM, plan9assembler wrote: > Hi, > > latest musl libc seems to fixes mount segfault error partially. > (mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out) > rebuild and test vanilla util-linux-2.23 result same. > tested util-linux-2.23.1 same. > tested gcc-4.8.1 same. > > sscanf "%ms" -> "%s" with malloc doesn't fixed the issue here. > with patch or without it result same. > > i compile strace-4.7 to trace the bug, but get some build error: > gcc -Wall -Wwrite-string -g -O2 -o strace strace.o syscall.o count.o > util.o desc.o file.o ipc.o io.o ioctl.o mem.o net.o process.o bjm.o quota.o > resource.o signal.o sock.o system.o term.o time.o scsi.o stream.o block.o > pathtrace.o mtd.o vsprintf.o loop.o > syscall.o:(.rodata+0x28080): undefined reference to `sys_getdents64' > syscall.o:(.rodata+0x2b100): undefined reference to `sys_truncate64' > syscall.o:(.rodata+0x2b118): undefined reference to `sys_ftruncate64' > syscall.o:(.rodata+0x2b388): undefined reference to `sys_getdents64' > syscall.o:(.rodata+0x2dd00): undefined reference to `sys_getdents64' > > BTW, i was quite surprised by base packages are so much "glibc-centric".. > > > > On Thu, May 30, 2013 at 5:37 PM, Szabolcs Nagy wrote: > >> * plan9assembler [2013-05-30 16:26:13 +0900]: >> > >> > it still gets same segfaults, same bt gdb result. >> > >> >> if you get the exact same segfault then you do something wrong >> ..or malloc(200) is not enough >> >> > and it is clear to me that latest musl libc[2013/05/29] contain new bug, >> > because, >> > below abnormal operation never happened before. (musl version git >> pulled at >> > 2013/05/03) >> > >> > # ./mount /dev/sda1 /mnt >> > EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) >> > >> > < 30 - 40 seconds waiting without return to shell> >> > >> > mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out >> > // <-- this is weird. >> > # >> >> works here fine >> since you have local modifications i'd check those first >> >> i doubt that latest musl has any related bug >> >> but you could easily prove me wrong with a strace >> that shows bad flags passed to some syscall >> >> > --e89a8ffbae59f7dc2704de1fec8e Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
ah! util-linux umount gets segfault always.


On Sun, Jun 2, 201= 3 at 8:14 AM, plan9assembler <plan9assembler@gmail.com> wrote:
Hi,

latest musl libc seems to fixes mount segfault err= or partially.
(mount: /mnt: filesystem mounted, but mount(8) failedOperation timed out)
rebuild and test vanilla util-linux-2.23 result same.
tested util-linux-2.23.1 same.
tested gcc-4.8.1 sa= me.

sscanf "%ms" -> "%s" wit= h malloc doesn't fixed the issue here.
with patch or without i= t result same.

i compile strace-4.7 to trace the bug, but get some build error:<= br>
gcc -Wall -Wwrite-string -g -O2 -o strace strace.o syscall.o count= .o util.o desc.o file.o ipc.o io.o ioctl.o mem.o net.o process.o bjm.o quot= a.o resource.o signal.o sock.o system.o term.o time.o scsi.o stream.o block= .o pathtrace.o mtd.o vsprintf.o loop.o
syscall.o:(.rodata+0x28080): undefined reference to `sys_getdents64&#= 39;
syscall.o:(.rodata+0x2b100): undefined reference to `sys_truncate64&= #39;
syscall.o:(.rodata+0x2b118): undefined reference to `sys_ftruncate6= 4'
syscall.o:(.rodata+0x2b388): undefined reference to `sys_getdents64'syscall.o:(.rodata+0x2dd00): undefined reference to `sys_getdents64'
BTW, i was quite surprised by base packages are so much &qu= ot;glibc-centric"..



On Thu, May 30, 2013 at 5:37 PM, Szabolcs Nagy <= ;nsz@port70.net>= wrote:
* plan9assembler <plan9assembler@gmail.com> [20= 13-05-30 16:26:13 +0900]:
>
> it still gets same segfaults, same bt gdb result.
>

if you get the exact same segfault then you do something wrong
..or malloc(200) is not enough

> and it is clear to me that latest musl libc[2013/05/29] contain new bu= g,
> because,
> below abnormal operation never happened before. (musl version git pull= ed at
> 2013/05/03)
>
> # ./mount /dev/sda1 /mnt
> EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null= )
>
> < 30 - 40 =A0seconds waiting without return to shell>
>
> mount: /mnt: filesystem mounted, but mount(8) failedOperation timed ou= t
> // <-- this is weird.
> #

works here fine
since you have local modifications i'd check those first

i doubt that latest musl has any related bug

but you could easily prove me wrong with a strace
that shows bad flags passed to some syscall



--e89a8ffbae59f7dc2704de1fec8e-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3391 Path: news.gmane.org!not-for-mail From: John Spencer Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 02 Jun 2013 03:50:21 +0200 Message-ID: <51AAA4DD.8080408@barfooze.de> References: <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> <20130530083711.GF7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1370137893 9943 80.91.229.3 (2 Jun 2013 01:51:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 2 Jun 2013 01:51:33 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3395-gllmg-musl=m.gmane.org@lists.openwall.com Sun Jun 02 03:51:34 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UixSG-0002fB-Ag for gllmg-musl@plane.gmane.org; Sun, 02 Jun 2013 03:51:32 +0200 Original-Received: (qmail 19505 invoked by uid 550); 2 Jun 2013 01:51:31 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 19497 invoked from network); 2 Jun 2013 01:51:31 -0000 User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110221 SUSE/3.1.8 Mail/1.0 In-Reply-To: Xref: news.gmane.org gmane.linux.lib.musl.general:3391 Archived-At: On 06/02/2013 01:14 AM, plan9assembler wrote: > > i compile strace-4.7 to trace the bug, but get some build error: use the version and patches from sabotage. even if the version used there is one release behind, it works. From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3392 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 2 Jun 2013 19:55:49 +0900 Message-ID: References: <51A60C74.6050500@gentoo.org> <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> <20130530083711.GF7095@port70.net> <51AAA4DD.8080408@barfooze.de> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=047d7bf17d6ced0a0d04de29b034 X-Trace: ger.gmane.org 1370170568 683 80.91.229.3 (2 Jun 2013 10:56:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 2 Jun 2013 10:56:08 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3396-gllmg-musl=m.gmane.org@lists.openwall.com Sun Jun 02 12:56:07 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uj5xG-0001sY-32 for gllmg-musl@plane.gmane.org; Sun, 02 Jun 2013 12:56:06 +0200 Original-Received: (qmail 16265 invoked by uid 550); 2 Jun 2013 10:56:04 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 16251 invoked from network); 2 Jun 2013 10:56:02 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ToGqm8Ez52BlC/Y0OdbAsItRIUm69o5a9+/e73aiJL0=; b=lUK8PMHp+EZ3+nFBH6UoJ5vclLZp7sjSkMD7Th4BIu9mCeBtg+Htt8ecOAhqj3WFBZ 2TSKHxYUgLFKtlSBbOkX6gWqPeL9JPJsIFQrCROV76I1hISOyUSCJ07z3RLJV1Slp1MF WoSvjYzkq7PoqI3DUbYzXnzK2eDmdNPGiqaHNFj541sIw5FUGWAIiKcYVccY/RlkGYvr MfMAplI0/kY9AO5azc9Qkw9R0K+IRF59YvHN4ypCQHQIRgbXdhYM3csOXldEabedH2z1 8GdmB70RyPJSdcg59OLQQqihgoQkmtgsm/bD2RFnlWph033WTwWwuWJ5BBJuszzfYVwL ZpcA== X-Received: by 10.66.100.231 with SMTP id fb7mr20022520pab.162.1370170550190; Sun, 02 Jun 2013 03:55:50 -0700 (PDT) In-Reply-To: <51AAA4DD.8080408@barfooze.de> Xref: news.gmane.org gmane.linux.lib.musl.general:3392 Archived-At: --047d7bf17d6ced0a0d04de29b034 Content-Type: multipart/alternative; boundary=047d7bf17d6ced0a0a04de29b032 --047d7bf17d6ced0a0a04de29b032 Content-Type: text/plain; charset=ISO-8859-1 Hi, i have fixed build error of strace 4.7 vi strace-4.7/defs.h + #define sys_getdents64 sys_getdents + #define sys_truncate64 sys_truncate + #define sys_ftruncate64 sys_ftruncate and Szabolcs Nagy was right, sscanf malloc patch fixed umount segfault. but mount/umount timed out operation didn't fixed. strace -o mount.log mount /dev/sda1 /mnt strace -o umount.log umount /mnt attached strace log archive. mount.log : mount log without patch umount.log : umount log without patch mount_m.log : mount log with patch umount_m.log : umount log with patch TIA On Sun, Jun 2, 2013 at 10:50 AM, John Spencer wrote: > On 06/02/2013 01:14 AM, plan9assembler wrote: > >> >> i compile strace-4.7 to trace the bug, but get some build error: >> > > use the version and patches from sabotage. > even if the version used there is one release behind, it works. > --047d7bf17d6ced0a0a04de29b032 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi,

i have fixed build error of st= race 4.7

vi strace-4.7/defs.h

+ #define sys_g= etdents64 sys_getdents
+ #define sys_truncate64 sys_truncate
+ #defin= e sys_ftruncate64 sys_ftruncate

=
and Szabolcs= Nagy was right, sscanf malloc patch fixed umount segfault.
but mount/um= ount timed out operation didn't fixed.

strace -o mount.log mount /dev/sda1 /mnt
strace -o umou= nt.log umount=A0 /mnt

attached strace log archive.
mount.= log=A0=A0 :=A0 mount log
wit= hout patch
umount.log :=A0 umount log without patch

mount_m.log : mount log wit= h patch
umount_m.log : umount log with patch

TIA



On Sun, Jun 2, 2013 at 10:50 AM, John Sp= encer <maillist-musl@barfooze.de> wrote:
On 06/02/2013 01:14 AM, plan9assembler wrote:

i compile strace-4.7 to trace the bug, but get some build error:

use the version and patches from sabotage.
even if the version used there is one release behind, it works.

--047d7bf17d6ced0a0a04de29b032-- --047d7bf17d6ced0a0d04de29b034 Content-Type: application/x-bzip2; name="util-linux_strace_log.tar.bz2" Content-Disposition: attachment; filename="util-linux_strace_log.tar.bz2" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hhg3ws1f0 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 n7NIlApx6WShfpl8ZAQGGEGqmJjIXEfp6/isCBIHGBzDZ8zWpY6KoABCKQQRBnIVN89lH8fNCMB4 9v737N7aCj8v00FGqIo/DlHu9tfUfhVBRsqCjUbZXd82ussyv5b9T9tT98yoKN/6lBRpIUfkf+zH h+kBOEiwUm/2EQQXl/43hgD1mD5+7aKKjXj3v/D8tBRihR4SFHCCo7tdL0+nz6DvOFQUd7so89NX i2cDiaqd/e/Mp6JCj9LlIor/0iqOqiJuQoy1Vpc1ETt/dGq8px4pEV+bpUFGiRFagurKQoyY4KpR 4joQo/X3q1es0Ow1L9FQUbK0dRsIo/goKPWQo4KCjv83i5W122UhRivU67I8SQo8PAoiuN0kKOHo IUYbq7ago8NFPUXSbX7/+f+L0vBxwhR06VCjutZCjKETQ9likUZ2VBRrpUFHbQUeLUddDrQUYe9S KMudCUblEV7RSjh7ufexQUflR7FOHYURXhpIUf8l3OH/Dnq7Xl2bClHjNlnDJuQo/I+JNFCjut1k hRqvQIo06zRVKPB73bhhCjKs2XikRXwtNSnuXo9EqUdyUo06tnTZinAaKYrucBPl6+ViRFbu7g0q VFeq9avNIitUiK1/QrqplBR51BRz89ZCjYpv7SFHjw2cago4u5djikRXtyhfLQUfXu9UqjyUFGzb T2VBRl3vJt5cfle0hR4JEV7dD3Pi5I9Z7NiFHGbgvdkhR2DmrFaHskKNago0oKPbnCQo3SIr26vH 5zry2thjAQufiswCiChsGq4WsZ6xqRKtneKWh0XHj9z1UFG6kUbP+/8Hs8lFR2FhAUNx79B1RxjT rgKKEUmQ4PBcG9yIgKHRulKggoVdm5TX5zf1RpZ8Opdh+qaTnOc5zdWPe8PCSSRttttttttttttt tttttttttttttttttttttttttttttj8lSSSNtttttttttttttttttttttttttttttttttttttttt ttttuwA22W2222wIKkkkYlSSSMeFivAAfkwMZmbsrjil45K4Ob437bYLFiJNKyQigTqTcKgiKdAM gApI9UUVVCSI416Z6b9N73ve97lHz6E6lCiJEKYBpJKBbbbbVbzgVllsliEMuUy0A1QPVUz1SkiM 269CjGQ9xdE96HPbnt89vs5znJI222222222222222222222222/3kkkkbbbbbbbbbbbbbbbbbbb bbbbbbH5RUkkjbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/NkkkjbbbfnPvAYKr3lXvAAgA 2PXLAAFAQ5SEqmYuX1c3r4fx4PT+Hq/76PN5upmza2bY1tjk0/fz7/8Nrl+Dr3dO19/p9X07fP+P p9nL9fL2+Pn9ve8vf/Pk6fX0+7yeTp+fg0aNGjRo0aNGjRo0aNHzcXFxcXF59PzzzzzzzzzzPPPP PPPPPPPPPPPPPPPPPPPPPPPPPPPPB55555555555555555555559PzzzzzzzzzzPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPsfsO77Pu7u7u7u7u7u7u+f3d3d3d3d3d3d3d3d3d3d3d3d3d+X+X7+/v7 +/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/dnd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d9Lu7u 7u7s7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7vpd3d3d3dnd3d3d3d3d3d3d3d3d3d3d3d3d3d 3d3d3d3d9Lu7u7u7s7u7u7u7u7u7u7u7u7u7u77vwvyDL8Ax98YBTxyDuRHciCR3JVlAcF3FQbXk swNLdfw39quq+iivCSNvDSa85xslJc24btqPHMbYC3z0E6d4qu+inv34qDDjvz0ghlulIvkq6QIm QJpvkH2/LZRO2ihACXJ8dOKXgurwwfVI17v3T2Z160YMcXUY4KIIuk2+ep8NFLbZh+32F+OCkwam DNmnX2fdizweLrZLIpIFbKLaIwlQiUykiFMQAs9phVxpP3CwAwSaM+PWWwAd0AFngiXN7ZAhOcgA tv2zj3gIEUA8oKAQAKiwAqLeRuFn4D6Ps3vMEAqKHnaVQBQpE/UTBke/9xviHogPPG/8HotFOExJ OxTpUFHfIUfzpEVw0oROdQo8P7GP+f7HNXCgo6SFHoXw/J9TPxyFH7iEUfUxIUa4gQUNmte2fRLS e44LxON3OzdYu44BREF9Z4lBR+cS+myPzv4j8VVBR5EKP9mqnNzdbi1IUf3nA0k3zGN+q9Q7+37+ ad3msgQwnl5Vu9pQcBULmT+53oio8hJZFnVUz6tJGQARBcooiV3O10IUf6Pq65pq4cKPHW93fwr3 6ux8VBR3uj809b2v4yij0VUUYeAij39FBRrOJ7a9yRFdlpYjgJaaH83u8by8hwe5OFyuwnudDKu0 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 q29uu3g6ZXZq01FGTnE7l8bYLMtCaSHstNzuwVVcZgl3t1uPElAzUrG7vJfx7Y3yj5deZYui8uu6 2MvjbxVLktzWUQAAIiAPvxAkr1QVH+zFBWSZTWTP0rWIEttb/gFCQAARQZ//iL6+e6rvv3+9gOf8 +lRTgAAPQPi3lqjIeYi3k+aSqpa2V3aFC4saIaYWzKVBK6ySqV2ZPobthVQlWtHs1VCKqFSUJdBn u3IZNJSBa217cta6qJqzIaNhyMVUROdS6xcW+EkiRVUAKUgUk3PKhFSj63lnQptlCj3w1PRoaKiq mgAZNAAAAAAACKn4PKUqpkDI0NGgMEaABoYgACSAJqqCiD0QyGgD1MCBhMn6UaGmGqfiaCVUqaYA AAAAAAAABSpVPMk1NPVPyifqTNIepptJmpoep6Jmj1TEyHkgKUpMm1NTVT9KNqPU0AHqAMgANAGh 6nuvZix7Ntvo/FuhUdIVHxIVGyQqPVCoykKjsqQhsokrCFRhCo2oVHmQqPjqVVJsJVCxCoyClTdC o3hJKxCo8IVGhSqpPShUYqgon/IVHlCoxCo4QqPaQqPmQqPchUakKjhQqMIVGSFR8VCoykKj4oVH 9IVH5oVHeQqPEhUcyFR8KFR76FRgklZQqOyFR0VEleCqUFvInIhOKieQHMhPKhNaE8CE4pIiPXqP vbe74N4rc4qoqsqqirrtLboxoqrCqquA2qiqqqqqqxTquI2KqujTCoyqrrKgGgAWBYAAAAAGgRpB oAAGg2owoBJQaSaABoAGwBoAAAaAAQE6AaBAKrq0AQAqqIABmlGgAYFBugAaBoaGhVgXo0qLeBZg AGgAAAaFAAASGaaGmgBoGk6SaEAGo3WLWIAAAGboBIARoAAAF3oYaaBppdaBpCKj3Nyq6keoiPXr 1EMiquiioyqKiqqKraC6qqi5KuOq9PPd3dajjYqqqKorCqqqqqqMqqqqqrDq0Llr3b3dPdyorCoq qrYLiqqqKrSqgqqqiq2sK1r3d3Y13d3VysOqqKtKrqqiqKKwqqqqqKKtDrDWj3L0r3C2i4qqi6tD KqKqjNLo6qqrmXmZmZWXkPhl5m7u7W7vzSASQfJIBJRGvnnnnnmqWqyqqIqqiqsqKiqqqKK3iw5g v0uenu7uVVYVVVbbVTVVVVVYVV0VVFVVlcWGxXZW3u7u7u50aVVGlV1VVVRcVtF1VFVUVYpRl2VF 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 nul4qh1uaREGQJz2LHOx1OSAx2sOl9TwYZmsKu8Lu+E5Q0zmXLU6eeHUDfW3Us7lM4xVdLIs11tV 06NQtYrnKSnbebVzrxSFvNa3jQyr2ZTCwMd2UntrXkp1XTW7eaqGNHBIl1dcWnXXouXayV0zOUV2 dPZb2stME7ks9qwGbrkXJtVe5qPdm6qIpIoVKWLakplLO4Sy64d2Tx1B9fDWeMuTzStkXc5D5f6c jw0FeQ9dA+9iKbGUZzG+0+D/vldCieGn3iMwvJzyMm2NTQt7qGd4MrOKnut8WDpOKhtzEbXIut3p gjahmO4OojsFuu9npcN92VVLuXOFXuCqt1aoSCLnHWyZFVwxUu1dyODakcrpc7x202ubrlWdTVX1 isFrEVmO9GNSJ0YUH2V2buz1CVPGevTaRMozfPOvqnds4VlYuzDW086OFNU4p6YZJddK1Os3R2Hm gd0Uz13eLBe9SniMqbBneLGrqstpmtBQs3hrMpXuWEKWIiu3NBrWUZtZO9ozaC6uUzy3Kw0CtsNK eq8op9U8FjS2qWzwq3dt9b3NzVZtXnaNruoHHs2hQ6t5NDSHo2c3tzh2HN2TaWE9dJ6c3dOm+eCh RsoUceB9dCVrlCPdqFGFCjKqhRvbmdQo4lCjz3rbnx8c2zBFHhr122379NMzXx32RncMYHM/sQhI 449dvdrtNSlr2TaOhTeAlITk0nFNUJ6zhdUyRh0dc7SzTR7OMqmbt8LZeVXMvq6bxCyJPAw5ZG29 2+q41VmbRIC7up1kbjldqs7YRritVtk1WalmndOuk3PPa0MrMWZlcnO1NITltJLYIW9g45WU53Lm jUzz4aLlKszrZFVuXat1CsRmu45nc6au9i6ht01LrL2FoFZeaa0tHuGnoJsNbzYyXmcZVZ07prLq u5s5op6tNO51WWkzqFEXFRiKnNds72SXUmZkOa6hjZpNZMjUiUW87aldxG13F071OR0FQh7dVVZN vpeJQVGkHe5BDmAfNwroc2OHzmPMUbRMSODjimZlq+WMxdvVJ7OW6Re9yOSuWSbzp7L49F46ug5u soTs33FqSLrtcnsGt83L4ZtlS+soJWyHVWnjs5TPaxOdwscjrqsFz23e4k75byCeV3ctrZ3bNLtR M09migquVlaGWmoy+NnKVTw3NQ4mdmTj5zIqzC8QTiay5oSrrFwxVmzuHk1lHZ1ap6je9LpJmmTu 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 --047d7bf17d6ced0a0d04de29b034-- From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3393 Path: news.gmane.org!not-for-mail From: Szabolcs Nagy Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Sun, 2 Jun 2013 15:00:59 +0200 Message-ID: <20130602130058.GL7095@port70.net> References: <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> <20130530083711.GF7095@port70.net> <51AAA4DD.8080408@barfooze.de> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1370178072 32588 80.91.229.3 (2 Jun 2013 13:01:12 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 2 Jun 2013 13:01:12 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3397-gllmg-musl=m.gmane.org@lists.openwall.com Sun Jun 02 15:01:12 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Uj7uK-0004Em-6s for gllmg-musl@plane.gmane.org; Sun, 02 Jun 2013 15:01:12 +0200 Original-Received: (qmail 9361 invoked by uid 550); 2 Jun 2013 13:01:11 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 9353 invoked from network); 2 Jun 2013 13:01:11 -0000 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Xref: news.gmane.org gmane.linux.lib.musl.general:3393 Archived-At: * plan9assembler [2013-06-02 19:55:49 +0900]: > and Szabolcs Nagy was right, sscanf malloc patch fixed umount segfault. > but mount/umount timed out operation didn't fixed. > as you can see in the strace log mount waits in a loop for /etc/mtab~ to disappear so it can link /etc/mtab~.PID there, but it never disappears so mount fails remove that file and mount will work From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3395 Path: news.gmane.org!not-for-mail From: plan9assembler Newsgroups: gmane.linux.lib.musl.general Subject: Re: util-linux-2.23 mount segmentation fault error Date: Mon, 3 Jun 2013 07:02:16 +0900 Message-ID: References: <20130529200453.GC7095@port70.net> <20130530064353.GE7095@port70.net> <20130530083711.GF7095@port70.net> <51AAA4DD.8080408@barfooze.de> <20130602130058.GL7095@port70.net> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a11330f1453caa004de330057 X-Trace: ger.gmane.org 1370210555 7121 80.91.229.3 (2 Jun 2013 22:02:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 2 Jun 2013 22:02:35 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3399-gllmg-musl=m.gmane.org@lists.openwall.com Mon Jun 03 00:02:36 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1UjGMA-0004vV-VE for gllmg-musl@plane.gmane.org; Mon, 03 Jun 2013 00:02:31 +0200 Original-Received: (qmail 27737 invoked by uid 550); 2 Jun 2013 22:02:29 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 27729 invoked from network); 2 Jun 2013 22:02:29 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=I8TLiGCfqwRuF0iaPlembgRAm7mi9FLwkD58PQ/Ib/0=; b=HalZ3FaYQEwhv/MgJsIfxPr9RUagya3rxAfxuuR+n0sOIW4aWrNG0it2DCPN/1aTxP hs+5FiIv8808tvWbkTNTr4om9myoPuC5ih8EIT9EkyCzfoit1xK3URAaT5yQjLrAYfpI Kyzd7yZKvpvY/2jmSNzZ2LGi2lYl0Ucpyei6Jxofi5rzzfre+aQNibrUttO6b61frc/I XrqM+uI2D42k6LqZyWT1ToZ7J6g3F+psSfOJPRY6FMrN8EUfBFyeF6SfVmDCJUWK7sVg GrRkUs2g4AlpkrM62EpDPjH4EHb989glo3JupAwnPtzGN36TaJ2g3VW2L7L2TJoVG1OM WtCw== X-Received: by 10.66.141.232 with SMTP id rr8mr12668539pab.204.1370210537030; Sun, 02 Jun 2013 15:02:17 -0700 (PDT) In-Reply-To: <20130602130058.GL7095@port70.net> Xref: news.gmane.org gmane.linux.lib.musl.general:3395 Archived-At: --001a11330f1453caa004de330057 Content-Type: text/plain; charset=ISO-8859-1 Thanks! it works now. ;-) On Sun, Jun 2, 2013 at 10:00 PM, Szabolcs Nagy wrote: > * plan9assembler [2013-06-02 19:55:49 +0900]: > > and Szabolcs Nagy was right, sscanf malloc patch fixed umount segfault. > > but mount/umount timed out operation didn't fixed. > > > > as you can see in the strace log mount waits in a loop > for /etc/mtab~ to disappear so it can link /etc/mtab~.PID > there, but it never disappears so mount fails > > remove that file and mount will work > --001a11330f1453caa004de330057 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Thanks! it works now. ;-)




On Sun, Jun 2, 2013 at 10:00= PM, Szabolcs Nagy <nsz@port70.net> wrote:
* plan9assembler <plan9assembler@gmail.com> [2013-06-02 19:55:49 = +0900]:
> and Szabolcs Nagy was right, sscanf malloc patch fix= ed umount segfault.
> but mount/umount timed out operation didn't fixed.
>

as you can see in the strace log mount waits in a loop
for /etc/mtab~ to disappear so it can link /etc/mtab~.PID
there, but it never disappears so mount fails

remove that file and mount will work

--001a11330f1453caa004de330057--