[CRIU] [PATCH] mount: skip '/' only if it is there
Andrei Vagin
avagin at openvz.org
Mon Oct 17 18:40:56 PDT 2016
From: Andrei Vagin <avagin at virtuozzo.com>
If p->mountpoint is "/", off will be 0 and we will
try to acess path[-1].
On Tue, Sep 20, 2016 at 05:17:27PM +0300, Kirill Tkhai wrote:
>
> int off = 0;
>
> ...
>
> if (p->mountpoint[1] != 0) /* not / */
> off = snprintf(path, len, %s, p->mountpoint);
> if (path[off - 1] == '/') /* p->mountpoint = ./ */
>
> ^^^
> The above looks like off-by-one when off == 0. Is there is
> a condition which guarantees that off is not zero?
Reported-by: Kirill Tkhai <ktkhai at virtuozzo.com>
Cc: Kirill Tkhai <ktkhai at virtuozzo.com>
Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
---
criu/path.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/criu/path.c b/criu/path.c
index c43b5e2..57773d5 100644
--- a/criu/path.c
+++ b/criu/path.c
@@ -72,10 +72,11 @@ char *mnt_get_sibling_path(struct mount_info *m,
cut_root = cut_root_for_bind(pa->root, p->root);
if (cut_root == NULL)
return NULL;
- if (p->mountpoint[1] != 0) /* not "/" */
+ if (p->mountpoint[1] != 0) /* not "/" */ {
off = snprintf(path, len, "%s", p->mountpoint);
- if (path[off - 1] == '/') /* p->mountpoint = "./" */
- off--;
+ if (path[off - 1] == '/') /* p->mountpoint = "./" */
+ off--;
+ }
len -= off;
path += off;
--
2.7.4
More information about the CRIU
mailing list