Quoting Yang Shi (yang....@linaro.org): > When run the below command: > lxc-start -n name -f /path/to/config > > If config is not a regular file, lxc-start will be killed by SEG FAULT > directly.
What exactly was the file to get a segfault? When I try with a device or a directory I do not get a segfault. > Exit with some error message to improve user experience. This is not the place to put that check (if it is needed). It should go into either lxc_container_new or load_config, wherever it is failing. > Signed-off-by: Yang Shi <yang....@linaro.org> > --- > src/lxc/lxc_start.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c > index 6b942ac..d1cf779 100644 > --- a/src/lxc/lxc_start.c > +++ b/src/lxc/lxc_start.c > @@ -212,6 +212,7 @@ int main(int argc, char *argv[]) > NULL, > }; > struct lxc_container *c; > + struct stat st_stat = {0}; > > lxc_list_init(&defines); > > @@ -242,6 +243,18 @@ int main(int argc, char *argv[]) > /* rcfile is specified in the cli option */ > if (my_args.rcfile) { > rcfile = (char *)my_args.rcfile; > + tmp = stat(rcfile, &st_stat); > + > + if (tmp && errno == ENOENT) { > + ERROR("The config path doesn't exist.\n"); > + return err; > + } > + > + if (!tmp && !S_ISREG(st_stat.st_mode)) { > + ERROR("The config is not a regular file.\n"); > + return err; > + } > + > c = lxc_container_new(my_args.name, lxcpath); > if (!c) { > ERROR("Failed to create lxc_container"); > -- > 2.0.2 > > _______________________________________________ > lxc-devel mailing list > lxc-devel@lists.linuxcontainers.org > http://lists.linuxcontainers.org/listinfo/lxc-devel _______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel