aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-cups.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2014-10-19 23:14:50 -0700
committerGuy Harris <guy@alum.mit.edu>2014-10-20 06:15:19 +0000
commit80e6f6251e96dd7b8a9ab0fdbf63b03a73ef6692 (patch)
tree92d519b9b19cccba0d083a6ad20152352daa5924 /epan/dissectors/packet-cups.c
parent0b9eb9f4b71b6632cfb4b87bcdefdfa75eaf2dd0 (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.c16
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++;
}