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>
This commit is contained in:
parent
b95f25af14
commit
eaf1f72ed8
|
@ -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++;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue