diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2018-04-27 15:29:32 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-04-28 06:19:48 +0000 |
commit | 3924c6e544387af7ecd2b6316f1396d857156408 (patch) | |
tree | 21072024895ff81be96e5eaa65f23422dc915d58 /wsutil/str_util.c | |
parent | b5fc9857c724c5fef08487ce7311c81cdd6368a3 (diff) |
lwm2mtlv: Handle String data type as UTF-8
Display element value as bytes if value is not a valid UTF-8 string.
Add a new utility function isprint_utf8_string().
Change-Id: I211d5ed423b53a9fd15eb260bbc6298b0b8f46a0
Reviewed-on: https://code.wireshark.org/review/27178
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'wsutil/str_util.c')
-rw-r--r-- | wsutil/str_util.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/wsutil/str_util.c b/wsutil/str_util.c index 65c36d6b15..eb76412a50 100644 --- a/wsutil/str_util.c +++ b/wsutil/str_util.c @@ -80,6 +80,25 @@ isprint_string(const gchar *str) return TRUE; } +/* Check if an entire UTF-8 string is printable. */ +gboolean +isprint_utf8_string(const gchar *str, guint length) +{ + const char *c; + + if (!g_utf8_validate (str, length, NULL)) { + return FALSE; + } + + for (c = str; *c; c = g_utf8_next_char(c)) { + if (!g_unichar_isprint(g_utf8_get_char(c))) { + return FALSE; + } + } + + return TRUE; +} + /* Check if an entire string is digits. */ gboolean isdigit_string(guchar *str) |