summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2019-03-10 13:04:25 +0800
committerGitHub <[email protected]>2019-03-10 13:04:25 +0800
commit6a12704bc6a5ca96a18c15bb6cea0787b8d81e12 (patch)
tree43ed5527841760339e3883d393ec44c376a957b8
parent1cf890c1bf73558ff9b129fa64d4e11689e1bef7 (diff)
parent584593071eac32ea7e65eedd81a36a1326bbbfe1 (diff)
Merge pull request #2412 from armink/fix_ulog
Update the ulog
-rw-r--r--components/utilities/ulog/ulog.c5
-rw-r--r--include/rtdbg.h2
-rw-r--r--include/rtthread.h1
-rw-r--r--src/kservice.c5
4 files changed, 10 insertions, 3 deletions
diff --git a/components/utilities/ulog/ulog.c b/components/utilities/ulog/ulog.c
index b813678ecd..87d0932506 100644
--- a/components/utilities/ulog/ulog.c
+++ b/components/utilities/ulog/ulog.c
@@ -315,7 +315,10 @@ RT_WEAK rt_size_t ulog_formater(char *log_buf, rt_uint32_t level, const char *ta
/* is not in interrupt context */
if (rt_interrupt_get_nest() == 0)
{
- log_len += ulog_strcpy(log_len, log_buf + log_len, rt_thread_self()->name);
+ rt_size_t name_len = rt_strnlen(rt_thread_self()->name, RT_NAME_MAX);
+
+ rt_strncpy(log_buf + log_len, rt_thread_self()->name, name_len);
+ log_len += name_len;
}
else
{
diff --git a/include/rtdbg.h b/include/rtdbg.h
index 6eb8ceb221..77382c656b 100644
--- a/include/rtdbg.h
+++ b/include/rtdbg.h
@@ -42,7 +42,7 @@
#define DBG_COLOR
#endif
-#if defined(RT_USING_ULOG) && defined(DBG_ENABLE)
+#if defined(RT_USING_ULOG)
/* using ulog compatible with rtdbg */
#include <ulog.h>
#else
diff --git a/include/rtthread.h b/include/rtthread.h
index d2356b8eda..e66e30fddb 100644
--- a/include/rtthread.h
+++ b/include/rtthread.h
@@ -516,6 +516,7 @@ void *rt_memcpy(void *dest, const void *src, rt_ubase_t n);
rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_ubase_t count);
rt_int32_t rt_strcmp(const char *cs, const char *ct);
rt_size_t rt_strlen(const char *src);
+rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen);
char *rt_strdup(const char *s);
#if defined(__CC_ARM) || defined(__CLANG_ARM)
/* leak strdup interface */
diff --git a/src/kservice.c b/src/kservice.c
index b640107a33..3663766225 100644
--- a/src/kservice.c
+++ b/src/kservice.c
@@ -461,6 +461,7 @@ rt_int32_t rt_strcmp(const char *cs, const char *ct)
return (*cs - *ct);
}
RTM_EXPORT(rt_strcmp);
+
/**
* The strnlen() function returns the number of characters in the
* string pointed to by s, excluding the terminating null byte ('\0'),
@@ -476,11 +477,13 @@ rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen)
{
const char *sc;
- for (sc = s; *sc != '\0' && sc - s < (int)maxlen; ++sc) /* nothing */
+ for (sc = s; *sc != '\0' && (rt_ubase_t)(sc - s) < maxlen; ++sc) /* nothing */
;
return sc - s;
}
+RTM_EXPORT(rt_strnlen);
+
/**
* This function will return the length of a string, which terminate will
* null character.