Hi,
In addition, there are other places where the additional byte needs to be accounted for, e.g. in makeun() within this file. Not sure whether there are others.There is already a +1 in makeun. *addrlen = nam->m_len + 1;
Yes, that's what I was trying to hint at. Here the m_len does include the terminating '\0' byte, so it should be something like (untested): static struct sockaddr_un * makeun(struct mbuf *nam, size_t *addrlen) { *addrlen = nam->m_len; sun = malloc(*addrlen, M_SONAME, M_WAITOK); m_copydata(nam, 0, nam->m_len, (void *)sun); sun->sun_len = strlen(sun->sun_path) + offsetof(struct sockaddr_un, sun_path); return sun; } Ciao, Wolfgang -- Wolfgang%Solfrank.net@localhost Wolfgang Solfrank
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature