RESOLVE_IN_ROOT
if ((how->resolve & RESOLVE_BENEATH) && (how->resolve & RESOLVE_IN_ROOT))
if (how->resolve & RESOLVE_IN_ROOT)
RESOLVE_BENEATH | RESOLVE_IN_ROOT | RESOLVE_CACHED)
#ifndef RESOLVE_IN_ROOT
.how.resolve = RESOLVE_BENEATH | RESOLVE_IN_ROOT,
test_rename_attack(RESOLVE_IN_ROOT);
case RESOLVE_IN_ROOT:
.path = "/", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/absself", .how.resolve = RESOLVE_IN_ROOT,
.path = "abscheeky/absself", .how.resolve = RESOLVE_IN_ROOT,
.path = "..", .how.resolve = RESOLVE_IN_ROOT,
.path = "../root/", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/self", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/garbageself", .how.resolve = RESOLVE_IN_ROOT,
.path = "abscheeky/garbageself", .how.resolve = RESOLVE_IN_ROOT,
.path = "root", .how.resolve = RESOLVE_IN_ROOT,
.path = "etc", .how.resolve = RESOLVE_IN_ROOT,
.path = "etc/passwd", .how.resolve = RESOLVE_IN_ROOT,
.path = "relsym", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/passwd", .how.resolve = RESOLVE_IN_ROOT,
.path = "abscheeky/passwd", .how.resolve = RESOLVE_IN_ROOT,
.path = "abssym", .how.resolve = RESOLVE_IN_ROOT,
.path = "/etc/passwd", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/abspasswd", .how.resolve = RESOLVE_IN_ROOT,
.path = "abscheeky/abspasswd", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/dotdotlink", .how.resolve = RESOLVE_IN_ROOT,
.path = "abscheeky/dotdotlink", .how.resolve = RESOLVE_IN_ROOT,
.path = "/../../../../abscheeky/dotdotlink", .how.resolve = RESOLVE_IN_ROOT,
.path = "cheeky/garbagelink", .how.resolve = RESOLVE_IN_ROOT,
.path = "abscheeky/garbagelink", .how.resolve = RESOLVE_IN_ROOT,
.path = "/../../../../abscheeky/garbagelink", .how.resolve = RESOLVE_IN_ROOT,
.how.resolve = RESOLVE_IN_ROOT,
.how.resolve = RESOLVE_IN_ROOT,
.how.resolve = RESOLVE_IN_ROOT,