ash: make a strdup copy of $HISTFILE for line editing
Otherwise if $HISTFILE is unset or reassigned, bad things can happen. function old new delta ash_main 1210 1218 +8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
5f2e00f66d
commit
3f8ec00b0c
@ -14499,7 +14499,7 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
|
||||
|
||||
if (sflag || minusc == NULL) {
|
||||
#if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY
|
||||
if (iflag) {
|
||||
if (line_input_state) {
|
||||
const char *hp = lookupvar("HISTFILE");
|
||||
if (!hp) {
|
||||
hp = lookupvar("HOME");
|
||||
@ -14513,7 +14513,7 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
|
||||
}
|
||||
}
|
||||
if (hp)
|
||||
line_input_state->hist_file = hp;
|
||||
line_input_state->hist_file = xstrdup(hp);
|
||||
# if ENABLE_FEATURE_SH_HISTFILESIZE
|
||||
hp = lookupvar("HISTFILESIZE");
|
||||
line_input_state->max_history = size_from_HISTFILESIZE(hp);
|
||||
|
Loading…
Reference in New Issue
Block a user