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 (sflag || minusc == NULL) {
|
||||||
#if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY
|
#if MAX_HISTORY > 0 && ENABLE_FEATURE_EDITING_SAVEHISTORY
|
||||||
if (iflag) {
|
if (line_input_state) {
|
||||||
const char *hp = lookupvar("HISTFILE");
|
const char *hp = lookupvar("HISTFILE");
|
||||||
if (!hp) {
|
if (!hp) {
|
||||||
hp = lookupvar("HOME");
|
hp = lookupvar("HOME");
|
||||||
@ -14513,7 +14513,7 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (hp)
|
if (hp)
|
||||||
line_input_state->hist_file = hp;
|
line_input_state->hist_file = xstrdup(hp);
|
||||||
# if ENABLE_FEATURE_SH_HISTFILESIZE
|
# if ENABLE_FEATURE_SH_HISTFILESIZE
|
||||||
hp = lookupvar("HISTFILESIZE");
|
hp = lookupvar("HISTFILESIZE");
|
||||||
line_input_state->max_history = size_from_HISTFILESIZE(hp);
|
line_input_state->max_history = size_from_HISTFILESIZE(hp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user