Avoid crash if facet use attribute is not supplied
[yaz-moved-to-github.git] / ztest / ztest.c
index c9d4af0..2277398 100644 (file)
@@ -258,7 +258,7 @@ Z_OtherInformation *build_facet_response(ODR odr, Z_FacetList *facet_list) {
         yaz_log(YLOG_LOG, "Attributes: %s %d ", attrvalues.useattr, attrvalues.limit);
         if (attrvalues.errstring)
             yaz_log(YLOG_LOG, "Error parsing attributes: %s", attrvalues.errstring);
-        if (attrvalues.limit > 0) {
+        if (attrvalues.limit > 0 && attrvalues.useattr) {
             new_list->elements[new_index] = facet_field_create(odr, facet_list->elements[index]->attributes, attrvalues.limit);
             addterms(odr, new_list->elements[new_index], attrvalues.useattr);
             new_index++;
@@ -278,6 +278,8 @@ Z_OtherInformation *build_facet_response(ODR odr, Z_FacetList *facet_list) {
         oiu->which = Z_OtherInfo_externallyDefinedInfo;
         oiu->information.externallyDefinedInfo = odr_malloc(odr, sizeof(*oiu->information.externallyDefinedInfo));
         oiu->information.externallyDefinedInfo->direct_reference = odr_oiddup(odr, yaz_oid_userinfo_facet_1);
+        oiu->information.externallyDefinedInfo->descriptor = 0;
+        oiu->information.externallyDefinedInfo->indirect_reference = 0;
         oiu->information.externallyDefinedInfo->which = Z_External_userFacets;
         oiu->information.externallyDefinedInfo->u.facetList = new_list;
         oi->list[0] = oiu;