Evening, When using `config -e`: * Don't print a NULL pointer if binary loaded is not a kernel. * Don't segfault of binary loaded is not a kernel. * Report non-existent kernel via a preliminary stat(). * Make a warning look like the rest.
OK? Index: exec.c =================================================================== RCS file: /cvs/src/usr.sbin/config/exec.c,v retrieving revision 1.7 diff -u -r1.7 exec.c --- exec.c 27 Oct 2009 23:59:51 -0000 1.7 +++ exec.c 28 Sep 2011 01:19:49 -0000 @@ -26,6 +26,8 @@ #include <err.h> #include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> #include <stdio.h> #ifdef AOUT_SUPPORT @@ -109,6 +111,11 @@ void loadkernel(char *file) { + struct stat st; + + if (stat(file, &st) == -1) + err(1, "cannot stat '%s'", file); + current_exec = -1; #ifdef AOUT_SUPPORT Index: ukc.c =================================================================== RCS file: /cvs/src/usr.sbin/config/ukc.c,v retrieving revision 1.16 diff -u -r1.16 ukc.c --- ukc.c 10 Dec 2009 22:07:19 -0000 1.16 +++ ukc.c 28 Sep 2011 01:19:49 -0000 @@ -114,10 +114,8 @@ } } - printf("%s", adjust((caddr_t)nl[P_VERSION].n_value)); - if (force == 0 && outfile == NULL) - printf("warning: no output file specified\n"); + printf("WARNING no output file specified\n"); if (nl[IA_EXTRALOC].n_type == 0 || nl[I_NEXTRALOC].n_type == 0 || nl[I_UEXTRALOC].n_type == 0 || nl[I_HISTLEN].n_type == 0 || @@ -155,6 +153,8 @@ process_history(histlen, history); } + printf("%s", adjust((caddr_t)nl[P_VERSION].n_value)); + if (config()) { if (force == 0 && outfile == NULL) { fprintf(stderr, "not forced\n"); @@ -184,7 +184,9 @@ struct winsize w; #endif - cd = get_cfdata(0); /* get first item */ + if ((cd = get_cfdata(0)) == NULL) /* get first item */ + errx(1, "failed to get first cfdata"); + while (cd->cf_attach != 0) { maxdev = i; totdev = i; -- Best Regards Edd Barrett