When compile them on old gcc, get the following error mount-idmapped.c: In function 'parse_map': mount-idmapped.c:154:2: error: 'for' loop initial declarations are only allowed in C99 mode for (int i = 0; i < 2; i++) { Fix them by declaring them at the beginning instead of in loop. Signed-off-by: Yang Xu <xuyang2018.jy@xxxxxxxxxxx> --- src/detached_mounts_propagation.c | 4 ++-- src/idmapped-mounts/mount-idmapped.c | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/detached_mounts_propagation.c b/src/detached_mounts_propagation.c index 99b66308..d4bc87f9 100644 --- a/src/detached_mounts_propagation.c +++ b/src/detached_mounts_propagation.c @@ -96,7 +96,7 @@ static const struct option longopts[] = { int main(int argc, char *argv[]) { int exit_code = EXIT_SUCCESS, index = 0; - int dfd, fd_tree, new_argc, ret; + int dfd, fd_tree, new_argc, ret, i; char *base_dir; char *const *new_argv; char target[PATH_MAX]; @@ -147,7 +147,7 @@ int main(int argc, char *argv[]) * Having a mount table with 10000 mounts is already quite excessive * and shoult account even for weird test systems. */ - for (size_t i = 0; i < 10000; i++) { + for (i = 0; i < 10000; i++) { fd_tree = sys_open_tree(dfd, "detached-move-mount", OPEN_TREE_CLONE | OPEN_TREE_CLOEXEC | diff --git a/src/idmapped-mounts/mount-idmapped.c b/src/idmapped-mounts/mount-idmapped.c index 5f5ba5d2..b3e9e27b 100644 --- a/src/idmapped-mounts/mount-idmapped.c +++ b/src/idmapped-mounts/mount-idmapped.c @@ -137,7 +137,7 @@ static int add_map_entry(__u32 id_host, static int parse_map(char *map) { char types[2] = {'u', 'g'}; - int ret; + int ret, i; __u32 id_host, id_ns, range; char which; @@ -151,7 +151,7 @@ static int parse_map(char *map) if (which != 'b' && which != 'u' && which != 'g') return -1; - for (int i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { idmap_type_t map_type; if (which != types[i] && which != 'b') @@ -230,8 +230,9 @@ static int map_ids_from_idmap(struct list *idmap, pid_t pid) int fill, left; char mapbuf[4096] = {}; bool had_entry = false; + idmap_type_t map_type, u_or_g; - for (idmap_type_t map_type = ID_TYPE_UID, u_or_g = 'u'; + for (map_type = ID_TYPE_UID, u_or_g = 'u'; map_type <= ID_TYPE_GID; map_type++, u_or_g = 'g') { char *pos = mapbuf; int ret; -- 2.23.0