X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=adu.c;h=deb3e94ccd88bf309263b57a87e307de9e00944c;hp=ae8cc43efd73109c3a6b70591beecea45ec2b99b;hb=0fbaae7717847b41f4d1218ce44de44c755397c0;hpb=0780ea991eb8d05f7d06eb2833e49925506ae17c diff --git a/adu.c b/adu.c index ae8cc43..deb3e94 100644 --- a/adu.c +++ b/adu.c @@ -1041,11 +1041,22 @@ static int check_args(void) { int i, ret; + /* remove trailing slashes from base-dir arg */ + if (conf.base_dir_given) { + size_t len = strlen(conf.base_dir_arg); + for (;;) { + if (!len) /* empty string */ + return -ERRNO_TO_ERROR(EINVAL); + if (!--len) /* length 1 is always OK */ + break; + if (conf.base_dir_arg[len] != '/') + break; /* no trailing slash, also OK */ + conf.base_dir_arg[len] = '\0'; + } + } if (!conf.uid_given) return 0; - admissible_uids = para_malloc(conf.uid_given * sizeof(*admissible_uids)); - for (i = 0; i < conf.uid_given; i++) { ret = parse_uid_range(conf.uid_arg[i], admissible_uids + i); if (ret < 0)