*** ../bash-5.0-patched/bashhist.c 2018-07-05 22:41:14.000000000 -0400 --- bashhist.c 2019-02-23 17:12:02.000000000 -0500 *************** *** 437,445 **** char *filename; { ! int fd, result; struct stat buf; result = EXECUTION_SUCCESS; ! if (history_lines_this_session > 0 && (history_lines_this_session <= where_history ())) { /* If the filename was supplied, then create it if necessary. */ --- 437,445 ---- char *filename; { ! int fd, result, histlen; struct stat buf; result = EXECUTION_SUCCESS; ! if (history_lines_this_session > 0) { /* If the filename was supplied, then create it if necessary. */ *************** *** 454,457 **** --- 454,461 ---- close (fd); } + /* cap the number of lines we write at the length of the history list */ + histlen = where_history (); + if (histlen > 0 && history_lines_this_session > histlen) + history_lines_this_session = histlen; /* reset below anyway */ result = append_history (history_lines_this_session, filename); /* Pretend we already read these lines from the file because we just