* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author João Luis M. Assirati
+ * \author João Luis M. Assirati
*
* Full author contact details are available in file CREDITS.
*/
#else // defined (HAVE_FCNTL)
-#include "support/lyxlib.h"
-
#include "support/debug.h"
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
#include <sys/socket.h>
#include <sys/un.h>
#include <fcntl.h>
#endif
#include <cerrno>
+#include <string>
+//needed for Mac OSX 10.5.2 Leopard
+#include <cstring>
using namespace std;
string::size_type len = localname.size();
// the field sun_path in sockaddr_un is a char[108]
if (len > 107) {
- LYXERR0("lyx: Socket address '" << name.absFilename() << "' too long.");
+ LYXERR0("lyx: Socket address '" << name.absFileName() << "' too long.");
return -1;
}
// Synonims for AF_UNIX are AF_LOCAL and AF_FILE
// bind() gives the local address 'name' for 'fd', also creating
// the socket special file in the filesystem. bind() returns -1
// in case of error
+ //
+ // Using Clang and fsanitize suggests there is an issue here but we do
+ // not understand the code enough to change it and we are not aware of
+ // how to trigger a crash or other issue while using LyX, so we leave
+ // it as is. For ML discussion, see here:
+ // https://www.mail-archive.com/search?l=mid&q=20211227113249.53bf5a63%40admin1-desktop
+ //
if ((::bind (fd, reinterpret_cast<sockaddr *>(&addr), SUN_LEN(&addr))) == -1) {
- LYXERR0("lyx: Could not bind address '" << name.absFilename()
+ LYXERR0("lyx: Could not bind address '" << name.absFileName()
<< "' to socket descriptor: " << strerror(errno));
::close(fd);
name.removeFile();