Empty backendelementset results in no elementset
[yazproxy-moved-to-github.git] / src / yaz-proxy.cpp
index 7233565..6865413 100644 (file)
@@ -340,6 +340,8 @@ Yaz_Proxy::~Yaz_Proxy()
         odr_destroy(m_s2z_odr_init);
     if (m_s2z_odr_search)
         odr_destroy(m_s2z_odr_search);
+    if (m_s2z_odr_scan)
+        odr_destroy(m_s2z_odr_scan);
     if (!m_parent)
         low_socket_close();
     if (!m_parent)
@@ -2774,8 +2776,10 @@ Z_APDU *Yaz_Proxy::handle_syntax_validation(Z_APDU *apdu)
         }
         if (m_backend_elementset)
         {
-            Z_ElementSetNames *esn = mk_esn_from_schema(odr_encode(),
-                                                        m_backend_elementset);
+            Z_ElementSetNames *esn =
+                mk_esn_from_schema(
+                    odr_encode(),
+                    *m_backend_elementset ? m_backend_elementset : 0);
             sr->smallSetElementSetNames = esn;
             sr->mediumSetElementSetNames = esn;
         }
@@ -2851,8 +2855,10 @@ Z_APDU *Yaz_Proxy::handle_syntax_validation(Z_APDU *apdu)
         }
         if (m_backend_elementset)
         {
-            Z_ElementSetNames *esn = mk_esn_from_schema(odr_encode(),
-                                                        m_backend_elementset);
+            Z_ElementSetNames *esn =
+                mk_esn_from_schema(
+                    odr_encode(),
+                    *m_backend_elementset ? m_backend_elementset : 0);
             Z_RecordComposition *comp = (Z_RecordComposition *)
                 odr_malloc(odr_encode(), sizeof(Z_RecordComposition));
             comp->which = Z_RecordComp_simple;