On Jul 18, 2017, at 20:59, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Jeremy Huddleston Sequoia <jeremyhu@apple.com> writes:
On Jul 16, 2017, at 16:26, Tom Lane <tgl@sss.pgh.pa.us> wrote: I dug into it and determined that even though _XSERVTransSocketReopen is being very careful to allocate the correct amount of memory, gcc is deciding to generate a __strlcpy_chk() call that abort()s if the string length is >= 14 bytes, because it thinks the declared size of struct sockaddr.sa_data is a hard limit that it ought to enforce.
Yeah. That's unfortunate misunderstanding of POSIX on the part of the compiler team there. Was it really FSF gcc that you're using? If so, please file a bug at https://gcc.gnu.org/bugzilla
Nope ...
If you're seeing that with clang, pleas let me know what version of clang. I thought we fixed clang's over-zealous __builtin_object_size before it was released.
This is current Xcode, as I said before.
$ gcc -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 8.1.0 (clang-802.0.42) Target: x86_64-apple-darwin16.6.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Ok, then that is clang, not gcc ;) ... gcc is just an alias for clang for folks with gcc muscle memory ;) Here's the background on the bug: https://bugs.llvm.org/show_bug.cgi?id=30346 I know it was an issue in the OSS releases of 3.8 and 3.9, but I thought it was never in an Xcode release. Unfortunately, it looks like the bug did indeed ship in Xcode 8.3. Luckily, it's not present in Xcode 9. --Jeremy