plug a buffer underflow read we executed with *every* testsuite run and
*every* interactive shell session (history didn’t contain anything when we tested for ignoredups)… first caught by the new code… d’uuuuuuuuuuh!
This commit is contained in:
parent
f0a042f070
commit
e9fc158472
@ -27,7 +27,7 @@
|
|||||||
#include <sys/file.h>
|
#include <sys/file.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.153 2016/01/21 18:24:40 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.154 2016/02/24 01:45:59 tg Exp $");
|
||||||
|
|
||||||
Trap sigtraps[ksh_NSIG + 1];
|
Trap sigtraps[ksh_NSIG + 1];
|
||||||
static struct sigaction Sigact_ign;
|
static struct sigaction Sigact_ign;
|
||||||
@ -658,7 +658,9 @@ histsave(int *lnp, const char *cmd, int svmode, bool ignoredups)
|
|||||||
strndupx(c, cmd, ccp - cmd, APERM);
|
strndupx(c, cmd, ccp - cmd, APERM);
|
||||||
|
|
||||||
if (svmode != HIST_APPEND) {
|
if (svmode != HIST_APPEND) {
|
||||||
if (ignoredups && !strcmp(c, *histptr)
|
if (ignoredups &&
|
||||||
|
histptr >= history &&
|
||||||
|
!strcmp(c, *histptr)
|
||||||
#if !defined(MKSH_SMALL) && HAVE_PERSISTENT_HISTORY
|
#if !defined(MKSH_SMALL) && HAVE_PERSISTENT_HISTORY
|
||||||
&& !histsync()
|
&& !histsync()
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user