tar: fix handling of first argument without '-'

The following no longer works as expected:

   $ ./busybox tar xfz test.tgz
   tar: can't open 'z': No such file or directory

Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Ron Yorston 2017-08-22 16:33:06 +01:00 committed by Denys Vlasenko
parent 3505e38bd1
commit 6bafcfb67a

View File

@ -953,9 +953,6 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
if (getuid() != 0)
tar_handle->ah_flags |= ARCHIVE_DONT_RESTORE_PERM;
/* Prepend '-' to the first argument if required */
if (argv[1] && argv[1][0] != '-' && argv[1][0] != '\0')
argv[1] = xasprintf("-%s", argv[1]);
#if ENABLE_DESKTOP
/* Lie to buildroot when it starts asking stupid questions. */
if (argv[1] && strcmp(argv[1], "--version") == 0) {
@ -992,6 +989,9 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
}
}
#endif
/* Prepend '-' to the first argument if required */
if (argv[1] && argv[1][0] != '-' && argv[1][0] != '\0')
argv[1] = xasprintf("-%s", argv[1]);
opt = GETOPT32(argv, "^"
"txC:f:Oopvk"
IF_FEATURE_TAR_CREATE( "ch" )