Author: eugen Date: Thu Mar 14 12:25:16 2019 New Revision: 345130 URL: https://svnweb.freebsd.org/changeset/base/345130
Log: trim(8): add another safety net It is quite easy make a mistake and run something like this: trim -f /dev/da0 -r rfile This would trim the whole device then emit an error on non-existing file -r. Add another check to prevent this while allowing this form still for real object names beginning from dash: trim -f -- /dev/da0 -r rfile MFC after: 1 week Modified: head/usr.sbin/trim/trim.c Modified: head/usr.sbin/trim/trim.c ============================================================================== --- head/usr.sbin/trim/trim.c Thu Mar 14 10:06:46 2019 (r345129) +++ head/usr.sbin/trim/trim.c Thu Mar 14 12:25:16 2019 (r345130) @@ -40,6 +40,7 @@ #include <stdbool.h> #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <sysexits.h> #include <unistd.h> @@ -103,6 +104,23 @@ main(int argc, char **argv) usage(name); /* NOTREACHED */ } + + /* + * Safety net: do not allow mistakes like + * + * trim -f /dev/da0 -r rfile + * + * This would trim whole device then error on non-existing file -r. + * Following check prevents this while allowing this form still: + * + * trim -f -- /dev/da0 -r rfile + */ + + if (strcmp(argv[optind-1], "--") != 0) { + for (ch = optind; ch < argc; ch++) + if (argv[ch][0] == '-') + usage(name); + } argv += optind; argc -= optind; _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"