mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-31 06:15:24 +00:00
mount: skip '/' only if it is there
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? travis-ci: success for mount: skip '/' only if it is there Reported-by: Kirill Tkhai <ktkhai@virtuozzo.com> Cc: Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: Andrei Vagin <avagin@virtuozzo.com> Acked-by: Kirill Tkhai <ktkhai@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
This commit is contained in:
committed by
Pavel Emelyanov
parent
c3e184f14a
commit
6fc5e41fd8
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user