Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Apr 2012 11:41:14 +0200
From:      =?UTF-8?B?SmVhbi1Tw6liYXN0aWVuIFDDqWRyb24=?= <dumbbell@FreeBSD.org>
To:        Dimitry Andric <dim@FreeBSD.org>
Cc:        freebsd-current@freebsd.org, Boris Samorodov <bsam@passap.ru>
Subject:   Re: segfault in vfscanf(3): clang and __restrict usage
Message-ID:  <4F99183A.5060406@FreeBSD.org>
In-Reply-To: <4F985334.8030109@FreeBSD.org>
References:  <4F9703C9.8080503@FreeBSD.org> <4F98492D.8070006@FreeBSD.org> <4F984CC2.5080404@passap.ru> <4F985334.8030109@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F99183A.5060406>