summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVaclav Dolezal2017-09-08 16:36:26 +0200
committerVaclav Dolezal2017-11-29 16:21:07 +0100
commitded09e8ed60d031ad3963dccc1c71800f1d539e1 (patch)
treeedabc9d64d24f28c6b33376052b562c233379990 /lib
parentfallocate: remove typo (diff)
downloadkernel-qcow2-util-linux-ded09e8ed60d031ad3963dccc1c71800f1d539e1.tar.gz
kernel-qcow2-util-linux-ded09e8ed60d031ad3963dccc1c71800f1d539e1.tar.xz
kernel-qcow2-util-linux-ded09e8ed60d031ad3963dccc1c71800f1d539e1.zip
lib/mbsalign: encode backslash to prevent ambiguity
Signed-off-by: Vaclav Dolezal <vdolezal@redhat.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/mbsalign.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/mbsalign.c b/lib/mbsalign.c
index 78ab12a0d..dce1a1321 100644
--- a/lib/mbsalign.c
+++ b/lib/mbsalign.c
@@ -54,7 +54,7 @@ size_t mbs_safe_nwidth(const char *buf, size_t bufsz, size_t *sz)
last = p + (bufsz - 1);
while (p && *p && p <= last) {
- if (iscntrl((unsigned char) *p)) {
+ if (*p == '\\' || iscntrl((unsigned char) *p)) {
width += 4, bytes += 4; /* *p encoded to \x?? */
p++;
}
@@ -135,7 +135,7 @@ char *mbs_safe_encode_to_buffer(const char *s, size_t *width, char *buf, const c
continue;
}
- if (iscntrl((unsigned char) *p)) {
+ if (*p == '\\' || iscntrl((unsigned char) *p)) {
sprintf(r, "\\x%02x", (unsigned char) *p);
r += 4;
*width += 4;