examples: fix local socket address lengths

The configured path size already includes its NUL terminator. Adding
another byte made the maximum address length exceed sockaddr_un, while
ustream could write at sun_path[UNIX_PATH_MAX].

Use the existing bounded copy length directly as the path portion of
the socket address and rely on strlcpy for termination.

Signed-off-by: Old-Ding <35417409+Old-Ding@users.noreply.github.com>
This commit is contained in:
Old-Ding 2026-07-06 05:25:10 +08:00
parent 62b7e95530
commit 4ed4f10ef9
4 changed files with 4 additions and 6 deletions

View file

@ -100,7 +100,7 @@ int main(int argc, FAR char *argv[])
server.sun_family = AF_LOCAL;
strlcpy(server.sun_path, CONFIG_EXAMPLES_UDGRAM_ADDR, addrlen);
addrlen += sizeof(sa_family_t) + 1;
addrlen += sizeof(sa_family_t);
/* Send the message */

View file

@ -102,7 +102,7 @@ int main(int argc, FAR char *argv[])
server.sun_family = AF_LOCAL;
strlcpy(server.sun_path, CONFIG_EXAMPLES_UDGRAM_ADDR, addrlen);
addrlen += sizeof(sa_family_t) + 1;
addrlen += sizeof(sa_family_t);
if (bind(sockfd, (struct sockaddr *)&server, addrlen) < 0)
{

View file

@ -88,10 +88,9 @@ int main(int argc, FAR char *argv[])
myaddr.sun_family = AF_LOCAL;
strlcpy(myaddr.sun_path, CONFIG_EXAMPLES_USTREAM_ADDR, addrlen);
myaddr.sun_path[addrlen] = '\0';
printf("client: Connecting to %s...\n", CONFIG_EXAMPLES_USTREAM_ADDR);
addrlen += sizeof(sa_family_t) + 1;
addrlen += sizeof(sa_family_t);
ret = connect(sockfd, (struct sockaddr *)&myaddr, addrlen);
if (ret < 0)
{

View file

@ -88,9 +88,8 @@ int main(int argc, char *argv[])
myaddr.sun_family = AF_LOCAL;
strlcpy(myaddr.sun_path, CONFIG_EXAMPLES_USTREAM_ADDR, addrlen);
myaddr.sun_path[addrlen] = '\0';
addrlen += sizeof(sa_family_t) + 1;
addrlen += sizeof(sa_family_t);
ret = bind(listensd, (struct sockaddr *)&myaddr, addrlen);
if (ret < 0)
{