uname: version string must hold 40 character value; strings returned by uname must always be NUL terminated
This commit is contained in:
parent
ffd0d12b04
commit
6576672e09
3 changed files with 34 additions and 11 deletions
2
configs
2
configs
|
|
@ -1 +1 @@
|
|||
Subproject commit e51db57af106b97ff12b37f3779c1067c1a3cfb6
|
||||
Subproject commit 011c54d78c920cd7bd0872638983444436e749dc
|
||||
|
|
@ -46,19 +46,29 @@
|
|||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#define SYS_NAMELEN 16
|
||||
#define SYS_NAMELEN 16
|
||||
#define VERSION_NAMELEN 41
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
/* These are the values returned by uname:
|
||||
*
|
||||
* FIELD Default
|
||||
* sysname NuttX
|
||||
* nodename CONFIG_NET_HOSTNAME
|
||||
* release From version.h
|
||||
* version From version.h
|
||||
* machine CONFIG_ARCH
|
||||
*/
|
||||
|
||||
struct utsname
|
||||
{
|
||||
char sysname[SYS_NAMELEN]; /* Name of OS */
|
||||
char nodename[HOST_NAME_MAX]; /* Name of this network node */
|
||||
char release[SYS_NAMELEN]; /* Release level */
|
||||
char version[SYS_NAMELEN]; /* Version level */
|
||||
char machine[SYS_NAMELEN]; /* Hardware type */
|
||||
char sysname[SYS_NAMELEN]; /* Name of OS */
|
||||
char nodename[HOST_NAME_MAX]; /* Name of this network node */
|
||||
char release[SYS_NAMELEN]; /* Release level */
|
||||
char version[VERSION_NAMELEN]; /* Version level */
|
||||
char machine[SYS_NAMELEN]; /* Machine hardware */
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
|
|
|
|||
|
|
@ -44,6 +44,10 @@
|
|||
|
||||
#include <nuttx/version.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
|
@ -80,6 +84,8 @@ int uname(FAR struct utsname *name)
|
|||
{
|
||||
int ret = 1;
|
||||
|
||||
/* Copy the strings. Assure that each is NUL terminated. */
|
||||
|
||||
strncpy(name->sysname, "NuttX", SYS_NAMELEN);
|
||||
|
||||
#ifdef CONFIG_NET
|
||||
|
|
@ -90,13 +96,20 @@ int uname(FAR struct utsname *name)
|
|||
ret = -1;
|
||||
}
|
||||
|
||||
name->nodename[HOST_NAME_MAX-1] = '\0';
|
||||
|
||||
#else
|
||||
strcpy(name->nodename, "");
|
||||
strncpy(name->nodename, "", HOST_NAME_MAX);
|
||||
#endif
|
||||
|
||||
strncpy(name->release, CONFIG_VERSION_STRING, SYS_NAMELEN);
|
||||
strncpy(name->version, CONFIG_VERSION_BUILD, SYS_NAMELEN);
|
||||
strncpy(name->machine, CONFIG_ARCH, SYS_NAMELEN);
|
||||
strncpy(name->release, CONFIG_VERSION_STRING, SYS_NAMELEN);
|
||||
name->release[SYS_NAMELEN-1] = '\0';
|
||||
|
||||
strncpy(name->version, CONFIG_VERSION_BUILD, VERSION_NAMELEN);
|
||||
name->version[VERSION_NAMELEN-1] = '\0';
|
||||
|
||||
strncpy(name->machine, CONFIG_ARCH, SYS_NAMELEN);
|
||||
name->machine[SYS_NAMELEN-1] = '\0';
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue