diff --git a/include/unistd.h b/include/unistd.h index 02e62d2409..d158955a98 100644 --- a/include/unistd.h +++ b/include/unistd.h @@ -386,8 +386,8 @@ FAR int *getopterrp(void); /* Print error message */ FAR int *getoptindp(void); /* Index into argv */ FAR int *getoptoptp(void); /* Unrecognized option character */ -int gethostname(FAR char *name, size_t size); -int sethostname(FAR const char *name, size_t size); +int gethostname(FAR char *name, size_t namelen); +int sethostname(FAR const char *name, size_t namelen); /* Get configurable system variables */ diff --git a/libs/libc/unistd/lib_sethostname.c b/libs/libc/unistd/lib_sethostname.c index 922ff48cd0..8e9c850fd1 100644 --- a/libs/libc/unistd/lib_sethostname.c +++ b/libs/libc/unistd/lib_sethostname.c @@ -105,7 +105,7 @@ extern char g_hostname[HOST_NAME_MAX + 1]; * ****************************************************************************/ -int sethostname(FAR const char *name, size_t size) +int sethostname(FAR const char *name, size_t namelen) { irqstate_t flags; @@ -116,8 +116,7 @@ int sethostname(FAR const char *name, size_t size) */ flags = enter_critical_section(); - strncpy(g_hostname, name, MIN(HOST_NAME_MAX, size)); - g_hostname[HOST_NAME_MAX] = '\0'; + strlcpy(g_hostname, name, sizeof(g_hostname)); leave_critical_section(flags); return 0;