diff options
author | Michal Srb <msrb@suse.com> | 2017-07-27 11:54:26 +0200 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2017-10-04 15:09:13 -0400 |
commit | 3094c4c6d879215923f2183ecd048b4f5429b182 (patch) | |
tree | a161e88d1bced5f3e5e2412612f948dbbca1c28a /xkb | |
parent | a510fb811100bc27f0bfafe5d073998551161819 (diff) |
xkb: Escape non-printable characters correctly.
XkbStringText escapes non-printable characters using octal numbers. Such escape
sequence would be at most 5 characters long ("\0123"), so it reserves 5 bytes
in the buffer. Due to char->unsigned int conversion, it would print much longer
string for negative numbers.
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
(cherry picked from commit eaf1f72ed8994b708d94ec2de7b1a99f5c4a39b8)
Diffstat (limited to 'xkb')
-rw-r--r-- | xkb/xkbtext.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c index ffbc546b3..ead2b1aee 100644 --- a/xkb/xkbtext.c +++ b/xkb/xkbtext.c @@ -603,7 +603,7 @@ XkbStringText(char *str, unsigned format) } else { *out++ = '0'; - sprintf(out, "%o", *in); + sprintf(out, "%o", (unsigned char) *in); while (*out != '\0') out++; } |