OSDN Git Service

tty/nozomi: cleanup DUMP() macro
authorJoey Pabalinas <joeypabalinas@gmail.com>
Wed, 25 Apr 2018 05:48:03 +0000 (19:48 -1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 25 Apr 2018 12:54:26 +0000 (14:54 +0200)
Replace snprint() with strscpy() and use min_t() instead of
the conditional operator to clamp buffer length.

Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/nozomi.c

index bf05946..675c02c 100644 (file)
@@ -72,19 +72,19 @@ do {                                                        \
 
 #define TMP_BUF_MAX 256
 
-#define DUMP(buf__,len__) \
-  do {  \
-    char tbuf[TMP_BUF_MAX] = {0};\
-    if (len__ > 1) {\
-       snprintf(tbuf, len__ > TMP_BUF_MAX ? TMP_BUF_MAX : len__, "%s", buf__);\
-       if (tbuf[len__-2] == '\r') {\
-               tbuf[len__-2] = 'r';\
-       } \
-       DBG1("SENDING: '%s' (%d+n)", tbuf, len__);\
-    } else {\
-       DBG1("SENDING: '%s' (%d)", tbuf, len__);\
-    } \
-} while (0)
+#define DUMP(buf__, len__)                                             \
+       do {                                                            \
+               char tbuf[TMP_BUF_MAX] = {0};                           \
+               if (len__ > 1) {                                        \
+                       u32 data_len = min_t(u32, len__, TMP_BUF_MAX);  \
+                       strscpy(tbuf, buf__, data_len);                 \
+                       if (tbuf[data_len - 2] == '\r')                 \
+                               tbuf[data_len - 2] = 'r';               \
+                       DBG1("SENDING: '%s' (%d+n)", tbuf, len__);      \
+               } else {                                                \
+                       DBG1("SENDING: '%s' (%d)", tbuf, len__);        \
+               }                                                       \
+       } while (0)
 
 /*    Defines */
 #define NOZOMI_NAME            "nozomi"