Fixed bug #794: Excessive memory when searching the LoC only.
authorAdam Dickmeiss <adam@indexdata.dk>
Fri, 5 Jan 2007 20:33:05 +0000 (20:33 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Fri, 5 Jan 2007 20:33:05 +0000 (20:33 +0000)
commit7ce18cf5c766487c184322478d9a656ac63e1456
tree74b4af974d83bee0a59d813b521699b348f90df9
parent5017b103ece3eeb4e3ab181d5e49d50af8e56018
Fixed bug #794: Excessive memory when searching the LoC only.
The bug was due to a buffer overrun in reclist_insert. Basically
the size could exceed that of flatlist_size. Reason is that
for LoC (or other target) we get 15 records at a time. 7*15 =
105 > 100 (expected_maxrecs). The buffer overrun made relevance_newrec
allocate very large nmem block. After that the tried would eventually
make a bad ptr reference. reclist_insert now returns 0 if there
is not enough room for a new record. Function ingest_record sees that
and does not process the record further. This bug was not relatd to
UTF-8 problems.
src/pazpar2.c
src/reclists.c