|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
From a71b7b7e52f312c7a9fc19154ac0d444e057e1d4 Mon Sep 17 00:00:00 2001
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
From: Lennart Poettering <lennart@poettering.net>
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
Date: Mon, 7 Jul 2014 11:47:10 +0200
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
Subject: [PATCH] util: consider 0x7F a control chracter (which it is: DEL)
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
Let's better be safe than sorry.
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
(cherry picked from commit 3a8a916338d8446b938f3cf40f6aae0c611892e3)
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
---
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
src/shared/util.c | 12 ++++++++++--
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
index 3d875c72b3..d25ee6652f 100644
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
--- a/src/shared/util.c
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+++ b/src/shared/util.c
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
@@ -1608,8 +1608,9 @@ int read_one_char(FILE *f, char *ret, usec_t t, bool *need_nl) {
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
return -ETIMEDOUT;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ errno = 0;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
if (!fgets(line, sizeof(line), f))
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
- return -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ return errno ? -errno : -EIO;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
truncate_nl(line);
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
@@ -5355,6 +5356,9 @@ bool string_is_safe(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
if (*t > 0 && *t < ' ')
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
return false;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ if (*t == 127)
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ return false;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
if (strchr("\\\"\'", *t))
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
return false;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
@@ -5371,10 +5375,14 @@ bool string_has_cc(const char *p) {
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
assert(p);
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
- for (t = p; *t; t++)
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ for (t = p; *t; t++) {
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
if (*t > 0 && *t < ' ' && *t != '\t')
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
return true;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ if (*t == 127)
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ return true;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+ }
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
+
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
return false;
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
}
|
|
Zbigniew Jędrzejewski-Szmek |
43ff24 |
|