X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fpazpar2.c;h=fa2d51fe9e6b57740da7b673d386873118d91b43;hb=0d3944c157baf45465880ccbd72c04945062832d;hp=049fa85392526f6c19eaf88ba82a689f1ca900de;hpb=e87d57823550dad9a66ac3569a277835ce3bc3d3;p=pazpar2-moved-to-github.git diff --git a/src/pazpar2.c b/src/pazpar2.c index 049fa85..fa2d51f 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -1,4 +1,4 @@ -/* $Id: pazpar2.c,v 1.14 2007-01-04 22:04:25 quinn Exp $ */; +/* $Id: pazpar2.c,v 1.16 2007-01-06 03:02:47 quinn Exp $ */; #include #include @@ -199,6 +199,8 @@ static void send_present(IOCHAN i) int start = cl->records + 1; toget = global_parameters.chunk; + if (toget > global_parameters.toget - cl->records) + toget = global_parameters.toget - cl->records; if (toget > cl->hits - cl->records) toget = cl->hits - cl->records; @@ -431,6 +433,7 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) if (!(mergekey = xmlGetProp(root, "mergekey"))) { yaz_log(YLOG_WARN, "No mergekey found in record"); + xmlFreeDoc(xdoc); return 0; } @@ -446,6 +449,12 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) res->merge_key = normalize_mergekey(mergekey_norm); head = reclist_insert(se->reclist, res); + if (!head) + { + /* no room for record */ + xmlFreeDoc(xdoc); + return 0; + } relevance_newrec(se->relevance, head); for (n = root->children; n; n = n->next)