diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2026-06-03 01:27:54 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2026-06-03 15:33:05 +0000 |
| commit | 521afce6a859c1d7ac9674e8f21ff45418becaf5 (patch) | |
| tree | 55caf89c4139941730bc37caffd8b3548daa8117 | |
| parent | 4908bea5b7f5de70032e201e718958ef40bc3b03 (diff) | |
xinstall: Do not allow -l and -s together
Cannot strip the target if creating a link.
Reviewed by: des
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57398
| -rwxr-xr-x | usr.bin/xinstall/tests/install_test.sh | 3 | ||||
| -rw-r--r-- | usr.bin/xinstall/xinstall.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/usr.bin/xinstall/tests/install_test.sh b/usr.bin/xinstall/tests/install_test.sh index 6b091f26b377..377920200490 100755 --- a/usr.bin/xinstall/tests/install_test.sh +++ b/usr.bin/xinstall/tests/install_test.sh @@ -27,8 +27,11 @@ atf_test_case incompatible_opts incompatible_opts_body() { + printf 'test\n123\r456\r\n789\0z' >testf atf_check -s not-exit:0 -e match:"specified together" \ install -s -d dir1 + atf_check -s not-exit:0 -e match:"specified together" \ + install -s -l s testf copyf } atf_test_case copy_to_empty diff --git a/usr.bin/xinstall/xinstall.c b/usr.bin/xinstall/xinstall.c index d389bdbe3737..facdcb737c41 100644 --- a/usr.bin/xinstall/xinstall.c +++ b/usr.bin/xinstall/xinstall.c @@ -293,6 +293,12 @@ main(int argc, char *argv[]) usage(); } + /* Cannot strip if creating a link. */ + if (dostrip && dolink) { + warnx("-l and -s may not be specified together"); + usage(); + } + /* * Default permissions based on whether we're a directory or not, since * an +X may mean that we need to set the execute bit. |
