#include <murphy/common/msg.h>
#include <murphy/common/transport.h>
+#ifndef UNIX_PATH_MAX
+# define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)NULL)->sun_path)
+#endif
+
#define UDP4 "udp4"
#define UDP4L 4
#define UDP6 "udp6"
nl = strlen(node);
}
- if (nl > nsize) {
+ if (nl >= nsize) {
errno = ENOMEM;
return -1;
}
{
struct addrinfo *ai, hints;
struct sockaddr_un *un;
- char node[512], *port;
+ char node[UNIX_PATH_MAX], *port;
socklen_t len;
mrp_clear(&hints);
errno = ENOMEM;
else {
un->sun_family = AF_UNIX;
- strcpy(un->sun_path, node);
+ strncpy(un->sun_path, node, UNIX_PATH_MAX-1);
if (un->sun_path[0] == '@')
un->sun_path[0] = '\0';
}