diff options
author | Colin Walters <walters@verbum.org> | 2009-07-10 19:26:52 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2009-07-14 15:39:40 -0400 |
commit | 7d6ca5493d0a7bb523351d8369e9ca9e799944ef (patch) | |
tree | bae63a9de965f26cc902f681175b79c7cdb19757 | |
parent | 576a87dc5aa146fbdaa9944c98f50f23268c804f (diff) |
Bug 21646 - Fix a signed char comparison
Original suggested patch from Marc-Andre Lureau <marcandre.lureau@gmail.com>
Explicitly cast to unsigned char before we do comparisons.
(cherry picked from commit 1f6ac4deef91df3130c61525a2800e6b8a0ddcbf)
-rw-r--r-- | dbus/dbus-sysdeps-util-unix.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/dbus/dbus-sysdeps-util-unix.c b/dbus/dbus-sysdeps-util-unix.c index d31e1441..5353bd7e 100644 --- a/dbus/dbus-sysdeps-util-unix.c +++ b/dbus/dbus-sysdeps-util-unix.c @@ -1148,10 +1148,13 @@ string_squash_nonprintable (DBusString *str) len = _dbus_string_get_length (str); for (i = 0; i < len; i++) - if (buf[i] == '\0') - buf[i] = ' '; - else if (buf[i] < 0x20 || buf[i] > 127) - buf[i] = '?'; + { + unsigned char c = (unsigned char) buf[i]; + if (c == '\0') + c = ' '; + else if (c < 0x20 || c > 127) + c = '?'; + } } /** |