Fix pazpar2 crash when using pz:extendrecs PAZ-1024
authorAdam Dickmeiss <adam@indexdata.dk>
Wed, 26 Aug 2015 09:55:18 +0000 (11:55 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Wed, 26 Aug 2015 09:55:18 +0000 (11:55 +0200)
src/client.c

index 75a8e20..267527c 100644 (file)
@@ -825,6 +825,7 @@ int client_fetch_more(struct client *cl)
     const char *str;
     int extend_recs = 0;
     int number = cl->hits - cl->record_offset;
+    struct connection *co = client_get_connection(cl);
 
     str = session_setting_oneval(sdb, PZ_EXTENDRECS);
     if (!str || !*str)
@@ -840,10 +841,13 @@ int client_fetch_more(struct client *cl)
 
     if (number > extend_recs)
         number = extend_recs;
-    if (number > 0)
+    if (number <= 0)
+        yaz_log(YLOG_LOG, "cl=%s. OK no more in total set", client_get_id(cl));
+    else if (!co)
+        yaz_log(YLOG_LOG, "cl=%s. No connection", client_get_id(cl));
+    else
     {
         ZOOM_resultset set = cl->resultset;
-        struct connection *co = client_get_connection(cl);
 
         str = session_setting_oneval(sdb, PZ_REQUESTSYNTAX);
         ZOOM_resultset_option_set(set, "preferredRecordSyntax", str);
@@ -856,10 +860,6 @@ int client_fetch_more(struct client *cl)
         connection_continue(co);
         return 1;
     }
-    else
-    {
-        yaz_log(YLOG_LOG, "cl=%s. OK no more in total set", client_get_id(cl));
-    }
     return 0;
 }