summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Srb <msrb@suse.com>2017-07-27 11:54:26 +0200
committerAdam Jackson <ajax@redhat.com>2017-10-04 15:09:13 -0400
commit3094c4c6d879215923f2183ecd048b4f5429b182 (patch)
treea161e88d1bced5f3e5e2412612f948dbbca1c28a
parenta510fb811100bc27f0bfafe5d073998551161819 (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)
-rw-r--r--xkb/xkbtext.c2
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++;
}