Fix coredump on FreeBSD when TAR_OPTIONS is set

* src/tar.c (parse_default_options): Use program_name instead of
program_invocation_short_name.  On some systems the latter is NULL when
the function is called, which causes coredumps.
(tar_set_quoting_style): Likewise.
* src/names.c: Likewise.
This commit is contained in:
Sergey Poznyakoff
2015-11-10 18:25:47 +02:00
parent 5e2a1d5b38
commit 6167c23e22
2 changed files with 3 additions and 3 deletions

View File

@@ -472,7 +472,7 @@ handle_option (const char *str, struct name_elt const *ent)
if (wordsplit (str, &ws, WRDSF_DEFFLAGS|WRDSF_DOOFFS))
FATAL_ERROR ((0, 0, _("cannot split string '%s': %s"),
str, wordsplit_strerror (&ws)));
ws.ws_wordv[0] = program_invocation_short_name;
ws.ws_wordv[0] = (char *) program_name;
loc.source = OPTS_FILE;
loc.name = ent->v.file.name;
loc.line = ent->v.file.line;

View File

@@ -265,7 +265,7 @@ tar_set_quoting_style (char *arg)
return;
}
FATAL_ERROR ((0, 0,
_("Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."), arg, program_invocation_short_name));
_("Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list."), arg, program_name));
}
@@ -2491,7 +2491,7 @@ parse_default_options (void)
wordsplit_strerror (&ws)));
if (ws.ws_wordc)
{
ws.ws_wordv[0] = program_invocation_short_name;
ws.ws_wordv[0] = (char*) program_name;
more_options (ws.ws_offs + ws.ws_wordc, ws.ws_wordv, &loc);
}