From owner-freebsd-current@FreeBSD.ORG Thu Apr 26 09:41:17 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 811E3106566B; Thu, 26 Apr 2012 09:41:17 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from mail.made4.biz (unknown [IPv6:2001:41d0:1:7018::1:3]) by mx1.freebsd.org (Postfix) with ESMTP id E93758FC08; Thu, 26 Apr 2012 09:41:16 +0000 (UTC) Received: from [2001:1b48:10b:cafe:225:64ff:febe:589f] (helo=viking.yzserv.com) by mail.made4.biz with esmtpsa (TLSv1:DHE-RSA-CAMELLIA256-SHA:256) (Exim 4.77 (FreeBSD)) (envelope-from ) id 1SNLCM-000BQz-VZ; Thu, 26 Apr 2012 11:41:15 +0200 Message-ID: <4F99183A.5060406@FreeBSD.org> Date: Thu, 26 Apr 2012 11:41:14 +0200 From: =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:12.0) Gecko/20120425 Thunderbird/12.0 MIME-Version: 1.0 To: Dimitry Andric References: <4F9703C9.8080503@FreeBSD.org> <4F98492D.8070006@FreeBSD.org> <4F984CC2.5080404@passap.ru> <4F985334.8030109@FreeBSD.org> In-Reply-To: <4F985334.8030109@FreeBSD.org> X-Enigmail-Version: 1.4 Content-Type: multipart/mixed; boundary="------------050107050902060602000802" Cc: freebsd-current@freebsd.org, Boris Samorodov Subject: Re: segfault in vfscanf(3): clang and __restrict usage X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Apr 2012 09:41:17 -0000 This is a multi-part message in MIME format. --------------050107050902060602000802 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 25.04.2012 21:40, Dimitry Andric wrote: > I think the easiest solution for now is to #undef __restrict at the > top of both lib/libc/stdio/vfscanf.c and lib/libc/stdio/vfwscanf.c, > then recompile and reinstall libc. I attached a patch that removes the __restrict keyword in the convert_* functions because I believe it's incorrect. In vfscanf.c, I kept the last one in parseint() because I believe it's correct: the restricted pointer is used to initialized another one and comparisons are made only between those two pointers. But I didn't check if clang optimized out the comparisons. What do you think about the correctness here? We can't remove it in vfwscanf(), vfwscanf_l() and __vfwscanf() (vfwscanf.c) because it's required by the vfwscanf(3) API. The patch also removes some trailing whitespaces while here. I'm rebuilding world with this patch and will check that cmake is working again (the program which shows segfaults for me). Boris, could you please test it and tell me if cupsd works again for you too? You just need to rebuild/reinstall the libc, not cups. Dimitry, thank you for the reporting the problem to LLVM! - -- Jean-Sébastien Pédron -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk+ZGDoACgkQa+xGJsFYOlOA4ACdH7vH4XfjH6nxcV/axmAYKUKq 8hoAoMrfly9RkUL0UKSKsmbxIiBz2YZy =GFTc -----END PGP SIGNATURE----- --------------050107050902060602000802 Content-Type: text/plain; charset=UTF-8; name="vfscanf-remove-incorrect-restrict-qualifiers.1.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vfscanf-remove-incorrect-restrict-qualifiers.1.patch" ZGlmZiAtLWdpdCBhL2xpYi9saWJjL3N0ZGlvL3Zmc2NhbmYuYyBiL2xpYi9saWJjL3N0ZGlv L3Zmc2NhbmYuYwppbmRleCA2YTZiMTljLi41MzE2YTdjIDEwMDY0NAotLS0gYS9saWIvbGli Yy9zdGRpby92ZnNjYW5mLmMKKysrIGIvbGliL2xpYmMvc3RkaW8vdmZzY2FuZi5jCkBAIC0x MjUsNyArMTI1LDcgQEAgc3RhdGljIGNvbnN0IG1ic3RhdGVfdCBpbml0aWFsX21iczsKICAq LwogCiBzdGF0aWMgX19pbmxpbmUgaW50Ci1jb252ZXJ0X2NoYXIoRklMRSAqZnAsIGNoYXIg KiBfX3Jlc3RyaWN0IHAsIGludCB3aWR0aCkKK2NvbnZlcnRfY2hhcihGSUxFICpmcCwgY2hh ciAqIHAsIGludCB3aWR0aCkKIHsKIAlpbnQgbiwgbnJlYWQ7CiAKQEAgLTE1Miw3ICsxNTIs NyBAQCBjb252ZXJ0X2NoYXIoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3RyaWN0IHAsIGludCB3 aWR0aCkKIAkJbnJlYWQgKz0gc3VtOwogCX0gZWxzZSB7CiAJCXNpemVfdCByID0gX19mcmVh ZChwLCAxLCB3aWR0aCwgZnApOwotCQkKKwogCQlpZiAociA9PSAwKQogCQkJcmV0dXJuICgt MSk7CiAJCW5yZWFkICs9IHI7CkBAIC0yMDUsNyArMjA1LDcgQEAgY29udmVydF93Y2hhcihG SUxFICpmcCwgd2NoYXJfdCAqd2NwLCBpbnQgd2lkdGgpCiB9CiAKIHN0YXRpYyBfX2lubGlu ZSBpbnQKLWNvbnZlcnRfY2NsKEZJTEUgKmZwLCBjaGFyICogX19yZXN0cmljdCBwLCBpbnQg d2lkdGgsIGNvbnN0IGNoYXIgKmNjbHRhYikKK2NvbnZlcnRfY2NsKEZJTEUgKmZwLCBjaGFy ICogcCwgaW50IHdpZHRoLCBjb25zdCBjaGFyICpjY2x0YWIpCiB7CiAJY2hhciAqcDA7CiAJ aW50IG47CkBAIC0zMDQsNyArMzA0LDcgQEAgY29udmVydF93Y2NsKEZJTEUgKmZwLCB3Y2hh cl90ICp3Y3AsIGludCB3aWR0aCwgY29uc3QgY2hhciAqY2NsdGFiKQogfQogCiBzdGF0aWMg X19pbmxpbmUgaW50Ci1jb252ZXJ0X3N0cmluZyhGSUxFICpmcCwgY2hhciAqIF9fcmVzdHJp Y3QgcCwgaW50IHdpZHRoKQorY29udmVydF9zdHJpbmcoRklMRSAqZnAsIGNoYXIgKiBwLCBp bnQgd2lkdGgpCiB7CiAJY2hhciAqcDA7CiAJaW50IG47CkBAIC00NjcsNyArNDY3LDcgQEAg cGFyc2VpbnQoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3RyaWN0IGJ1ZiwgaW50IHdpZHRoLCBp bnQgYmFzZSwgaW50IGZsYWdzKQogCQkJCWdvdG8gb2s7CiAJCQl9CiAJCQlicmVhazsKLQkJ CQkJCisKIAkJLyoKIAkJICogeCBvayBpZmYgZmxhZyBzdGlsbCBzZXQgJiAybmQgY2hhciAo b3IgM3JkIGNoYXIgaWYKIAkJICogd2UgaGF2ZSBhIHNpZ24pLgpkaWZmIC0tZ2l0IGEvbGli L2xpYmMvc3RkaW8vdmZ3c2NhbmYuYyBiL2xpYi9saWJjL3N0ZGlvL3Zmd3NjYW5mLmMKaW5k ZXggNmI0ZDhjNS4uOWQ2MjhiMCAxMDA2NDQKLS0tIGEvbGliL2xpYmMvc3RkaW8vdmZ3c2Nh bmYuYworKysgYi9saWIvbGliYy9zdGRpby92ZndzY2FuZi5jCkBAIC0xMzgsNyArMTM4LDcg QEAgc3RhdGljIGNvbnN0IG1ic3RhdGVfdCBpbml0aWFsX21iczsKICAqLwogCiBzdGF0aWMg X19pbmxpbmUgaW50Ci1jb252ZXJ0X2NoYXIoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3RyaWN0 IG1icCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2NhbGUpCitjb252ZXJ0X2NoYXIoRklMRSAq ZnAsIGNoYXIgKiBtYnAsIGludCB3aWR0aCwgbG9jYWxlX3QgbG9jYWxlKQogewogCW1ic3Rh dGVfdCBtYnM7CiAJc2l6ZV90IG5jb252OwpAQCAtMTkyLDcgKzE5Miw3IEBAIGNvbnZlcnRf d2NoYXIoRklMRSAqZnAsIHdjaGFyX3QgKndjcCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2Nh bGUpCiB9CiAKIHN0YXRpYyBfX2lubGluZSBpbnQKLWNvbnZlcnRfY2NsKEZJTEUgKmZwLCBj aGFyICogX19yZXN0cmljdCBtYnAsIGludCB3aWR0aCwgY29uc3Qgc3RydWN0IGNjbCAqY2Ns LAorY29udmVydF9jY2woRklMRSAqZnAsIGNoYXIgKiBtYnAsIGludCB3aWR0aCwgY29uc3Qg c3RydWN0IGNjbCAqY2NsLAogICAgIGxvY2FsZV90IGxvY2FsZSkKIHsKIAltYnN0YXRlX3Qg bWJzOwpAQCAtMjYxLDcgKzI2MSw3IEBAIGNvbnZlcnRfd2NjbChGSUxFICpmcCwgd2NoYXJf dCAqd2NwLCBpbnQgd2lkdGgsIGNvbnN0IHN0cnVjdCBjY2wgKmNjbCwKIH0KIAogc3RhdGlj IF9faW5saW5lIGludAotY29udmVydF9zdHJpbmcoRklMRSAqZnAsIGNoYXIgKiBfX3Jlc3Ry aWN0IG1icCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2NhbGUpCitjb252ZXJ0X3N0cmluZyhG SUxFICpmcCwgY2hhciAqIG1icCwgaW50IHdpZHRoLCBsb2NhbGVfdCBsb2NhbGUpCiB7CiAJ bWJzdGF0ZV90IG1iczsKIAlzaXplX3QgbmNvbnY7CkBAIC00MDcsNyArNDA3LDcgQEAgcGFy c2VpbnQoRklMRSAqZnAsIHdjaGFyX3QgKmJ1ZiwgaW50IHdpZHRoLCBpbnQgYmFzZSwgaW50 IGZsYWdzLAogCQkJCWdvdG8gb2s7CiAJCQl9CiAJCQlicmVhazsKLQkJCQkJCisKIAkJLyoK IAkJICogeCBvayBpZmYgZmxhZyBzdGlsbCBzZXQgJiAybmQgY2hhciAob3IgM3JkIGNoYXIg aWYKIAkJICogd2UgaGF2ZSBhIHNpZ24pLgo= --------------050107050902060602000802--