This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 6e12b3d74b89d3945a36c070c4a9d90891567706
Author: wangmingrong1 <[email protected]>
AuthorDate: Fri Oct 11 18:25:31 2024 +0800

    libc/utsname: Only store version in RAM, use rodata for all others
    
    Signed-off-by: wangmingrong1 <[email protected]>
---
 libs/libc/misc/lib_utsname.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/libs/libc/misc/lib_utsname.c b/libs/libc/misc/lib_utsname.c
index 57aa62d590..c692297db7 100644
--- a/libs/libc/misc/lib_utsname.c
+++ b/libs/libc/misc/lib_utsname.c
@@ -51,11 +51,8 @@
  * Private Data
  ****************************************************************************/
 
-static char g_sysname[] = "NuttX";
-static char g_machine[] = CONFIG_ARCH;
-static char g_release[] = CONFIG_VERSION_STRING;
-
-#if defined(__DATE__) && defined(__TIME__)
+#if defined(__DATE__) && defined(__TIME__) && \
+    !defined(CONFIG_LIBC_UNAME_DISABLE_TIMESTAMP)
 static char g_version[] = CONFIG_VERSION_BUILD " " __DATE__ " " __TIME__;
 #else
 static char g_version[] = CONFIG_VERSION_BUILD;
@@ -97,15 +94,20 @@ int uname(FAR struct utsname *name)
 {
   int ret = 0;
 
+  /* Copy the strings.  Assure that each is NUL terminated. */
+
+  strlcpy(name->sysname, "NuttX", sizeof(name->sysname));
+
   /* Get the hostname */
 
   ret = gethostname(name->nodename, HOST_NAME_MAX);
   name->nodename[HOST_NAME_MAX - 1] = '\0';
 
-  strlcpy(name->sysname, g_sysname, sizeof(name->sysname));
-  strlcpy(name->release, g_release, sizeof(name->release));
-  strlcpy(name->version, g_version, sizeof(name->version));
-  strlcpy(name->machine, g_machine, sizeof(name->machine));
+  strlcpy(name->release,  CONFIG_VERSION_STRING, sizeof(name->release));
+
+  strlcpy(name->version,  g_version, sizeof(name->version));
+
+  strlcpy(name->machine,  CONFIG_ARCH, sizeof(name->machine));
 
   return ret;
 }

Reply via email to