On 7/22/15 5:00 PM, Alexey Makhalov wrote: > I have met situation when nfd(returned by fcntl) is 217, but nbuffers is > only 25 > > if (buffers[nfd]) > { > /* What's this? A stray buffer without an associated open file > descriptor? Free up the buffer and report the error. */ > internal_error (_("save_bash_input: buffer already exists for new fd > %d"), nfd); > free_buffered_stream (buffers[nfd]); > } > and free_buffered_stream() causes a segfault.
Thanks, this is a good fix. > I added extra comparison nfd < nbuffers - it works for me. > Why do we need this check? Does stray buffer happen, when nfd is in a range > [0,nbuffers)? I forget the exact reason, but I'm sure I ran into that situation in the past. It's more robust programming, at least. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/