diff options
author | Guy Harris <guy@alum.mit.edu> | 2014-10-19 23:14:50 -0700 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2014-10-20 06:15:19 +0000 |
commit | 80e6f6251e96dd7b8a9ab0fdbf63b03a73ef6692 (patch) | |
tree | 92d519b9b19cccba0d083a6ad20152352daa5924 /epan/dissectors/packet-cups.c | |
parent | 0b9eb9f4b71b6632cfb4b87bcdefdfa75eaf2dd0 (diff) |
Get rid of calls to ctype.h functions.
They don't handle values outside the range -1 to 127, and their behavior
is locale-dependent. Use g_ascii_isXXX() and g_ascii_toXXX() instead of
isXXX() and toXXX().
If you're checking for printable ASCII, don't use isascii() and don't
use iscntrl(), use g_ascii_isprint(). If you're checking for graphical
ASCII, i.e. printable ASCII except for a space, use g_ascii_isgraph().
Use ws_xton() to convert a hex digit character to the corresponding
numeric value.
Change-Id: Id3039bc586fbf66d8736c2df248c790c0d7a2330
Reviewed-on: https://code.wireshark.org/review/4851
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'epan/dissectors/packet-cups.c')
-rw-r--r-- | epan/dissectors/packet-cups.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/epan/dissectors/packet-cups.c b/epan/dissectors/packet-cups.c index 7f7f4b9607..5ad008e4d1 100644 --- a/epan/dissectors/packet-cups.c +++ b/epan/dissectors/packet-cups.c @@ -23,9 +23,8 @@ #include "config.h" -#include <ctype.h> - #include <glib.h> +#include <wsutil/str_util.h> #include <epan/packet.h> /**********************************************************************/ @@ -230,17 +229,8 @@ get_hex_uint(tvbuff_t *tvb, gint offset, gint *next_offset) int c; guint u = 0; - while (isxdigit(c = tvb_get_guint8(tvb, offset))) { - if (isdigit(c)) - c -= '0'; - else if (isupper(c)) - c -= 'A' - 10; - else if (islower(c)) - c -= 'a' - 10; - else - c = 0; /* This should not happen. */ - - u = 16*u + c; + while (g_ascii_isxdigit(c = tvb_get_guint8(tvb, offset))) { + u = 16*u + ws_xton(c); offset++; } |