GFS: Avoid piggyback for hits < 0 from backend
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 3 Dec 2009 08:35:03 +0000 (09:35 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Fri, 4 Dec 2009 09:52:01 +0000 (10:52 +0100)
If a backend returns negative hit count, then avoid comparisons against
smallSetUpperBound and largeSetLowerBound. Otherwise a negative size
in call to odr_malloc will occur.

src/seshigh.c

index b0349e7..bdfb499 100644 (file)
@@ -2755,7 +2755,9 @@ static Z_APDU *response_searchRequest(association *assoc, request *reqb,
 
         comp.which = Z_RecordComp_simple;
         /* how many records does the user agent want, then? */
-        if (bsrt->hits <= *req->smallSetUpperBound)
+        if (bsrt->hits < 0)
+            *toget = 0;
+        else if (bsrt->hits <= *req->smallSetUpperBound)
         {
             *toget = bsrt->hits;
             if ((comp.u.simple = req->smallSetElementSetNames))