23210108 Upgrade openscap to 1.2.9
authorJacob Varughese <jacob.varughese@oracle.com>
Mon, 27 Jun 2016 15:15:47 -0700
changeset 6294 ff05e37b1eac
parent 6293 f3245760f53f
child 6295 5bc187901764
23210108 Upgrade openscap to 1.2.9
components/openscap/Makefile
components/openscap/openscap.license
components/openscap/openscap.p5m
components/openscap/patches/oval_session.c.patch
components/openscap/patches/seap-packet.c.patch
components/openscap/patches/zz_oval_fts.c.patch
components/openscap/patches/zzz_fts_sun.h.patch
--- a/components/openscap/Makefile	Mon Jun 27 15:00:28 2016 -0700
+++ b/components/openscap/Makefile	Mon Jun 27 15:15:47 2016 -0700
@@ -26,13 +26,13 @@
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		openscap
-COMPONENT_VERSION=	1.2.6
+COMPONENT_VERSION=	1.2.9
 COMPONENT_PROJECT_URL=  http://www.open-scap.org
 COMPONENT_DOWNLOAD_URL= https://fedorahosted.org/releases/o/p/openscap
-COMPONENT_ARCHIVE_HASH= sha256:95f2345e041e9ba838ad8065b68ce0ec4b0971d7afc72d601489236bbfc0c652
+COMPONENT_ARCHIVE_HASH= sha256:20ae67ffabf90865fb2033d5c5e49bfb5fb485ffa6ff37910e8d7084c2236c74
 COMPONENT_ARCHIVE_URL=  $(COMPONENT_DOWNLOAD_URL)/$(COMPONENT_ARCHIVE)
 
-TPNO =			25520
+TPNO =			28398
 
 # Requires newer version of system/management/rad/client/rad-c from ON,
 # available in S12 but not 11.3, so do not publish.
--- a/components/openscap/openscap.license	Mon Jun 27 15:00:28 2016 -0700
+++ b/components/openscap/openscap.license	Mon Jun 27 15:15:47 2016 -0700
@@ -1,4 +1,4 @@
-Copyright ® 2002-2014, The MITRE Corporation.
+Copyright ® 2002-2016, The MITRE Corporation.
 Except as permitted below, all rights reserved.
 Open Vulnerability and Assessment Language (OVAL®) License
 
@@ -16,9 +16,9 @@
 
 OVAL Content, whether already in the OVAL Repository hosted by MITRE or developed by you and sent to MITRE via the discussion forums or any other means to be deposited into the OVAL Repository, is fully available for public use free of charge. In addition, to the extent that contributed OVAL Content involves pre-existing copyrighted works, you hereby grant to MITRE an irrevocable, worldwide, royalty-free, non-exclusive, license, for the duration of the copyright, to do the following:
 
-    to reproduce such OVAL Content, either alone or as part of a collective work;
-    to translate, adapt, alter, transform, modify, or arrange such OVAL Content, thereby creating derivative works ("Derivative Works"); and
-    to distribute, display, or communicate copies of such OVAL Content to the public free of charge.
+   a. to reproduce such OVAL Content, either alone or as part of a collective work;
+   b. to translate, adapt, alter, transform, modify, or arrange such OVAL Content, thereby creating derivative works ("Derivative Works"); and
+   c. to distribute, display, or communicate copies of such OVAL Content to the public free of charge.
 
 ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN ARE PROVIDED ON AN "AS IS" BASIS AND THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE MITRE CORPORATION, ITS BOARD OF TRUSTEES, OFFICERS, AGENTS, AND EMPLOYEES, DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 
--- a/components/openscap/openscap.p5m	Mon Jun 27 15:00:28 2016 -0700
+++ b/components/openscap/openscap.p5m	Mon Jun 27 15:15:47 2016 -0700
@@ -35,8 +35,6 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2012/152
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-
-
 file path=usr/bin/oscap
 file path=usr/include/openscap/check_engine_plugin.h
 file path=usr/include/openscap/cpe_dict.h
@@ -47,6 +45,7 @@
 file path=usr/include/openscap/ds_rds_session.h
 file path=usr/include/openscap/ds_sds_session.h
 file path=usr/include/openscap/oscap.h
+file path=usr/include/openscap/oscap_debug.h
 file path=usr/include/openscap/oscap_error.h
 file path=usr/include/openscap/oscap_reference.h
 file path=usr/include/openscap/oscap_source.h
@@ -71,12 +70,12 @@
 file path=usr/include/openscap/xccdf_benchmark.h
 file path=usr/include/openscap/xccdf_policy.h
 file path=usr/include/openscap/xccdf_session.h
-link path=usr/lib/$(MACH64)/libopenscap.so target=libopenscap.so.8.6.0
-link path=usr/lib/$(MACH64)/libopenscap.so.8 target=libopenscap.so.8.6.0
-file path=usr/lib/$(MACH64)/libopenscap.so.8.6.0
-link path=usr/lib/$(MACH64)/libopenscap_sce.so target=libopenscap_sce.so.8.6.0
-link path=usr/lib/$(MACH64)/libopenscap_sce.so.8 target=libopenscap_sce.so.8.6.0
-file path=usr/lib/$(MACH64)/libopenscap_sce.so.8.6.0
+link path=usr/lib/$(MACH64)/libopenscap.so target=libopenscap.so.8.8.0
+link path=usr/lib/$(MACH64)/libopenscap.so.8 target=libopenscap.so.8.8.0
+file path=usr/lib/$(MACH64)/libopenscap.so.8.8.0
+link path=usr/lib/$(MACH64)/libopenscap_sce.so target=libopenscap_sce.so.8.8.0
+link path=usr/lib/$(MACH64)/libopenscap_sce.so.8 target=libopenscap_sce.so.8.8.0
+file path=usr/lib/$(MACH64)/libopenscap_sce.so.8.8.0
 file path=usr/lib/$(MACH64)/openscap/probe_dnscache
 file path=usr/lib/$(MACH64)/openscap/probe_environmentvariable
 file path=usr/lib/$(MACH64)/openscap/probe_environmentvariable58
@@ -390,6 +389,7 @@
 file path=usr/share/doc/openscap/html/oscap_8h_source.html
 file path=usr/share/doc/openscap/html/oscap__acquire_8h_source.html
 file path=usr/share/doc/openscap/html/oscap__buffer_8h_source.html
+file path=usr/share/doc/openscap/html/oscap__debug_8h_source.html
 file path=usr/share/doc/openscap/html/oscap__error_8h.html
 file path=usr/share/doc/openscap/html/oscap__error_8h_source.html
 file path=usr/share/doc/openscap/html/oscap__reference_8h_source.html
@@ -506,6 +506,7 @@
 file path=usr/share/doc/openscap/html/partition_8c.html
 file path=usr/share/doc/openscap/html/password_8c.html
 file path=usr/share/doc/openscap/html/patch_8c.html
+file path=usr/share/doc/openscap/html/preload_8c.html
 file path=usr/share/doc/openscap/html/probe-api_8c.html
 file path=usr/share/doc/openscap/html/probe-api_8h.html
 file path=usr/share/doc/openscap/html/probe-api_8h_source.html
@@ -531,6 +532,7 @@
 file path=usr/share/doc/openscap/html/result__scoring__priv_8h_source.html
 file path=usr/share/doc/openscap/html/rmd160_8h_source.html
 file path=usr/share/doc/openscap/html/routingtable_8c.html
+file path=usr/share/doc/openscap/html/rpm-helper_8h_source.html
 file path=usr/share/doc/openscap/html/rpminfo_8c.html
 file path=usr/share/doc/openscap/html/rpmverify_8c.html
 file path=usr/share/doc/openscap/html/rpmverifyfile_8c.html
@@ -637,8 +639,6 @@
 file path=usr/share/doc/openscap/html/search/defines_0.js
 file path=usr/share/doc/openscap/html/search/defines_1.html
 file path=usr/share/doc/openscap/html/search/defines_1.js
-file path=usr/share/doc/openscap/html/search/defines_2.html
-file path=usr/share/doc/openscap/html/search/defines_2.js
 file path=usr/share/doc/openscap/html/search/enums_0.html
 file path=usr/share/doc/openscap/html/search/enums_0.js
 file path=usr/share/doc/openscap/html/search/enums_1.html
@@ -1103,11 +1103,10 @@
 file path=usr/share/doc/openscap/html/structreporter.html
 file path=usr/share/doc/openscap/html/structresult__info.html
 file path=usr/share/doc/openscap/html/structroute__info.html
-file path=usr/share/doc/openscap/html/structrpminfo__global.html
+file path=usr/share/doc/openscap/html/structrpm__probe__global.html
 file path=usr/share/doc/openscap/html/structrpminfo__rep.html
 file path=usr/share/doc/openscap/html/structrpminfo__req.html
 file path=usr/share/doc/openscap/html/structrpmverify__bhmap__t.html
-file path=usr/share/doc/openscap/html/structrpmverify__global.html
 file path=usr/share/doc/openscap/html/structrpmverify__res.html
 file path=usr/share/doc/openscap/html/structrpmverifyfile__bhmap__t.html
 file path=usr/share/doc/openscap/html/structrpmverifypackage__bhmap__t.html
@@ -1766,32 +1765,6 @@
 file path=usr/share/openscap/schemas/xccdf/1.2/datatypes.dtd
 file path=usr/share/openscap/schemas/xccdf/1.2/xccdf_1.2-schematron.xsl
 file path=usr/share/openscap/schemas/xccdf/1.2/xccdf_1.2.xsd
-file path=usr/share/openscap/sectool-sce/00_integrity.sh
-file path=usr/share/openscap/sectool-sce/01_bootloader.sh
-file path=usr/share/openscap/sectool-sce/01_disk_usage.sh
-file path=usr/share/openscap/sectool-sce/01_group.sh
-file path=usr/share/openscap/sectool-sce/01_passwd.sh
-file path=usr/share/openscap/sectool-sce/01_shadow.sh
-file path=usr/share/openscap/sectool-sce/02_home_files.sh
-file path=usr/share/openscap/sectool-sce/02_root_dirs.sh
-file path=usr/share/openscap/sectool-sce/03_path.sh
-file path=usr/share/openscap/sectool-sce/04_firewall.sh
-file path=usr/share/openscap/sectool-sce/05_netserv.sh
-file path=usr/share/openscap/sectool-sce/05_openssh.sh
-file path=usr/share/openscap/sectool-sce/05_openvpn.sh
-file path=usr/share/openscap/sectool-sce/05_removed_libs.sh
-file path=usr/share/openscap/sectool-sce/05_xinetd.sh
-file path=usr/share/openscap/sectool-sce/07_log_files.sh
-file path=usr/share/openscap/sectool-sce/08_pam.sh
-file path=usr/share/openscap/sectool-sce/08_permissions.sh
-file path=usr/share/openscap/sectool-sce/09_exec_shield.sh
-file path=usr/share/openscap/sectool-sce/09_selinux.sh
-file path=usr/share/openscap/sectool-sce/09_va_randomization.sh
-file path=usr/share/openscap/sectool-sce/11_aliases.sh
-file path=usr/share/openscap/sectool-sce/12_cron.sh
-file path=usr/share/openscap/sectool-sce/14_nfs.sh
-file path=usr/share/openscap/sectool-sce/15_tcp_wrappers.sh
-file path=usr/share/openscap/sectool-sce/sectool-xccdf.xml
 file path=usr/share/openscap/xsl/legacy-fix.xsl
 file path=usr/share/openscap/xsl/legacy-fixtpl-bash.xml
 file path=usr/share/openscap/xsl/legacy-xccdf-share.xsl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/openscap/patches/oval_session.c.patch	Mon Jun 27 15:15:47 2016 -0700
@@ -0,0 +1,13 @@
+This patch fixes a build issue on solaris.
+It is intended to be submitted upstream by 2016-Jul-01.
+--- openscap-1.2.9/src/OVAL/oval_session.c.~1~	2016-05-02 11:04:04.741724115 -0700
++++ openscap-1.2.9/src/OVAL/oval_session.c	2016-05-02 11:04:20.852019147 -0700
[email protected]@ -27,7 +27,7 @@
+ #include <libgen.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <linux/limits.h>
++#include <limits.h>
+ 
+ #include "common/alloc.h"
+ #include "common/debug_priv.h"
--- a/components/openscap/patches/seap-packet.c.patch	Mon Jun 27 15:00:28 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-This patch fixes some memory management issues with 
-SEAP. This patch has not been contributed upstream
-but will be done by 2015-09-30.
---- openscap-1.2.3/src/OVAL/probes/SEAP/seap-packet.c.~1~	2015-09-09 08:47:22.067689406 -0700
-+++ openscap-1.2.3/src/OVAL/probes/SEAP/seap-packet.c	2015-09-09 08:47:46.696514370 -0700
[email protected]@ -730,7 +730,6 @@
-                         } else {
-                                 SEXP_list_free (sexp_buffer);
-                                 SEXP_psetup_free (psetup);
--				SEXP_free(sexp_buffer);
-                                 dI("eloop_restart\n");
-                                 goto eloop_start;
-                         }
---- openscap-1.2.3/src/OVAL/probes/SEAP/sexp-value.c.~1~	2015-09-10 15:14:06.694228778 -0700
-+++ openscap-1.2.3/src/OVAL/probes/SEAP/sexp-value.c	2015-09-10 15:15:53.755827733 -0700
[email protected]@ -119,7 +119,7 @@
-         _A(sz < 16);
- 
-         if (sm_memalign ((void **)(void *)&lblk, SEXP_LBLK_ALIGN,
--                         sizeof (uintptr_t) + (2 * sizeof (uint16_t)) + (sizeof (SEXP_t) * (1 << sz))) != 0) {
-+                         sizeof (struct SEXP_val_lblk) + (sizeof (SEXP_t) * (1 << sz))) != 0) {
-                 /* TODO: handle this */
-                 abort ();
-                 return ((uintptr_t) NULL);
--- a/components/openscap/patches/zz_oval_fts.c.patch	Mon Jun 27 15:00:28 2016 -0700
+++ b/components/openscap/patches/zz_oval_fts.c.patch	Mon Jun 27 15:15:47 2016 -0700
@@ -1,10 +1,6 @@
-This patch fixes the issue with using the private
-interfaces from libzonecfg and avl.h and use the
-rad interfaces to obtain the zonepath information.
-This patch has not been contribute upstream.
---- openscap-1.2.6/src/OVAL/probes/oval_fts.c.~1~	2015-10-02 08:22:02.487343649 -0700
-+++ openscap-1.2.6/src/OVAL/probes/oval_fts.c	2016-05-27 11:23:22.612830759 -0700
[email protected]@ -45,14 +45,16 @@
+--- openscap-1.2.9/src/OVAL/probes/oval_fts.c.~1~	2016-04-21 04:51:58.300491814 -0700
++++ openscap-1.2.9/src/OVAL/probes/oval_fts.c	2016-06-08 12:59:52.982814231 -0700
[email protected]@ -45,8 +45,9 @@
  #if defined(__SVR4) && defined(__sun)
  #include "fts_sun.h"
  #include <sys/mntent.h>
@@ -16,14 +12,7 @@
  #else
  #include <fts.h>
  #endif
- 
- #undef OSCAP_FTS_DEBUG
- 
-+
- static OVAL_FTS *OVAL_FTS_new()
- {
- 	OVAL_FTS *ofts;
[email protected]@ -140,12 +142,7 @@
[email protected]@ -137,12 +138,7 @@
  #ifndef MNTTYPE_PROC
  #define MNTTYPE_PROC	"proc"
  #endif
@@ -37,7 +26,7 @@
  
  
  static bool valid_remote_fs(char *fstype)
[email protected]@ -171,80 +168,124 @@
[email protected]@ -168,79 +164,123 @@
  	return (true);
  }
  
@@ -73,116 +62,119 @@
 -		if (strcmp(name, "global") == 0)
 -			continue;
 -		if (zone_get_state(name, &state_num) != Z_OK) {
--			dE("Could not get zone state for %s\n", name);
+-			dE("Could not get zone state for %s", name);
 -			continue;
 -		} else if (state_num > ZONE_STATE_CONFIGURED) {
 -			temp = malloc(sizeof(zone_path_t));
 -			if (temp == NULL) {
--				dE("Memory alloc failed\n");
+-				dE("Memory alloc failed");
 -				return(1);
 -			}
 -			if (zone_get_zonepath(name, rpath,
 -			    sizeof(rpath)) != Z_OK) {
--				dE("Could not get zone path for %s\n",
+-				dE("Could not get zone path for %s",
 -				    name);
 -				continue;
-+        rc_conn_t *conn;
-+        rc_err_t status;
-+        rc_instance_t *zone_inst;
-+        adr_name_t **name_list;
-+        int name_count, i, prop_count;
-+        char *zone_name;
-+        char *zone_state;
-+        zonemgr_Resource_t global = { .zr_type = "global" };
-+        zonemgr_Property_t **result;
-+        zonemgr_Result_t *error;
-+	const char *prop[] = {"zonepath"};
-+        char *zonepath;
-+        char *p;
-+	char rpath[PATH_MAX];
-+
-+        /* Connect to rad */
-+        conn = rc_connect_unix(NULL, NULL);
-+        if (conn == NULL) {
-+        	dE("Unable to connect to rad.\n");
-+        	return (1);
-+        }
-+        status = zonemgr_Zone__rad_list(conn, _B_TRUE, NS_GLOB, &name_list,
-+	    &name_count, 0);
-+        if (status != RCE_OK) {
-+		dE("Zonemgr lookup failed.\n");
-+		goto error;
-+	}
-+	if (name_count > 0) {
-+		top = calloc(name_count + 1, PATH_MAX);
-+		if (top == NULL) {
-+			dE("Memory error.\n");
-+			return (1);
-+		}
-+	}
-+	for (i = 0; i < name_count; i++) {
-+		int rc;
-+                status = rc_lookup(conn, name_list[i], NULL,  _B_TRUE,
-+                    &zone_inst);
-+                if (status != RCE_OK) {
-+                        goto error;
-+                }
-+                status = zonemgr_Zone_get_name(zone_inst, &zone_name);
-+                if (status != RCE_OK) {
-+                        goto error;
-+                }
-+                dE("zone name:%s\n", zone_name);
-+                status = zonemgr_Zone_get_state(zone_inst, &zone_state);
-+		if (status != RCE_OK) {
-+			dE("Failed to get state\n");
-+                        return(1);
-+                }
-+                dE("zone state:%s\n", zone_state);
-+                if (strcmp(zone_state, "incomplete") != 0 &&
-+                    strcmp(zone_state, "running") != 0 &&
-+                    strcmp(zone_state, "installed") != 0) {
-+			free(zone_name);
-+			free(zone_state);
-+                        continue;
-+		}
-+                status = zonemgr_Zone_getResourceProperties(zone_inst, &global,
-+                    prop, 1, &result, &prop_count, &error);
-+		if (status == RCE_SERVER_OBJECT) {
-+		    dE("error code:%d: %s\n",
-+			 error->zr_code ? *error->zr_code : 0,
-+			 error->zr_str ? error->zr_str : "");
-+		} else if (status != RCE_OK) {
-+		    dE("Internal RAD error: %s\n", rc_err_string(status));
-+		}
-+		zonepath = strdup(result[0]->zp_value);
-+		dE("zonepath :%s\n", zonepath);
-+		assert(prop_count == 1);
-+		rpath[0] = '\0';
-+		if (zonepath != NULL && strlen(zonepath) > 0 ) {
-+			if ((p = strstr(zonepath, "%{zonename}")) != NULL) {
-+				*p = '\0';
-+				snprintf(rpath, sizeof(rpath), "%s%s",zonepath,
-+				    strdup(zone_name));
-+			} else {
-+				snprintf(rpath, sizeof(rpath), "%s", zonepath);
- 			}
+-			}
 -			if (realpath(rpath, temp->zpath) != NULL)
 -				avl_add(&avl_tree_list, temp);
-+			resolvepath(rpath, &(top[i*PATH_MAX]), ((size_t) PATH_MAX -1));
-+			dE("zonepath after resolvepath:%s\n", &(top[i*PATH_MAX]));
+-		}
+-	}
+-	endzoneent(cookie);
+-	return (0);
++       rc_conn_t *conn;
++       rc_err_t status;
++       rc_instance_t *zone_inst;
++       adr_name_t **name_list;
++       int name_count, i, prop_count;
++       char *zone_name;
++       char *zone_state;
++       zonemgr_Resource_t global = { .zr_type = "global" };
++       zonemgr_Property_t **result;
++       zonemgr_Result_t *error;
++       const char *prop[] = {"zonepath"};
++       char *zonepath;
++       char *p;
++       char rpath[PATH_MAX];
 +
- 		}
-+		zonemgr_Result_free(error);
-+		zonemgr_Property_array_free(result, prop_count);
-+		free(zone_name);
-+		free(zone_state);
- 	}
--	endzoneent(cookie);
- 	return (0);
++       /* Connect to rad */
++       conn = rc_connect_unix(NULL, NULL);
++       if (conn == NULL) {
++              dE("Unable to connect to rad.\n");
++              return (1);
++       }
++       status = zonemgr_Zone__rad_list(conn, _B_TRUE, NS_GLOB, &name_list,
++          &name_count, 0);
++       if (status != RCE_OK) {
++              dE("Zonemgr lookup failed.\n");
++              goto error;
++      }
++      if (name_count > 0) {
++              top = calloc(name_count + 1, PATH_MAX);
++              if (top == NULL) {
++                      dE("Memory error.\n");
++                      return (1);
++              }
++      }
++      for (i = 0; i < name_count; i++) {
++               int rc;
++               status = rc_lookup(conn, name_list[i], NULL,  _B_TRUE,
++                   &zone_inst);
++               if (status != RCE_OK) {
++                       goto error;
++               }
++               status = zonemgr_Zone_get_name(zone_inst, &zone_name);
++               if (status != RCE_OK) {
++                       goto error;
++               }
++               dE("zone name:%s\n", zone_name);
++               status = zonemgr_Zone_get_state(zone_inst, &zone_state);
++               if (status != RCE_OK) {
++                      dE("Failed to get state\n");
++                      return(1);
++               }
++              dE("zone state:%s\n", zone_state);
++              if (strcmp(zone_state, "incomplete") != 0 &&
++                  strcmp(zone_state, "running") != 0 &&
++                  strcmp(zone_state, "installed") != 0) {
++                      free(zone_name);
++                      free(zone_state);
++                      continue;
++              }
++               status = zonemgr_Zone_getResourceProperties(zone_inst, &global,
++                   prop, 1, &result, &prop_count, &error);
++              if (status == RCE_SERVER_OBJECT) {
++                  dE("error code:%d: %s\n",
++                       error->zr_code ? *error->zr_code : 0,
++                       error->zr_str ? error->zr_str : "");
++              } else if (status != RCE_OK) {
++                  dE("Internal RAD error: %s\n", rc_err_string(status));
++              }
++              zonepath = strdup(result[0]->zp_value);
++              dE("zonepath :%s\n", zonepath);
++              assert(prop_count == 1);
++              rpath[0] = '\0';
++              if (zonepath != NULL && strlen(zonepath) > 0 ) {
++                      if ((p = strstr(zonepath, "%{zonename}")) != NULL) {
++                              *p = '\0';
++                              snprintf(rpath, sizeof(rpath), "%s%s",zonepath,
++                                  strdup(zone_name));
++                      } else {
++                              snprintf(rpath, sizeof(rpath), "%s", zonepath);
++                      }
++                      resolvepath(rpath, &(top[i*PATH_MAX]), ((size_t) PATH_MAX -1));
++                      dE("zonepath after resolvepath:%s\n", &(top[i*PATH_MAX]));
++              }
++              zonemgr_Result_free(error);
++              zonemgr_Property_array_free(result, prop_count);
++              free(zone_name);
++              free(zone_state);
++        }
++        return (0);
 +error:
-+	/* disconnect from rad */
-+	rc_disconnect(conn);
-+	return (1);
++      /* disconnect from rad */
++      rc_disconnect(conn);
++      return(1);
  }
  
  static void free_zones_path_list()
@@ -201,27 +193,26 @@
  {
 -	zone_path_t temp;
 -	avl_index_t where;
--
++      int i;
++      char *zonepath;
+ 
 -	strlcpy(temp.zpath, path, sizeof(temp.zpath));
 -	if (avl_find(&avl_tree_list, &temp, &where) != NULL)
 -		return (true);
-+	int i;
-+	char *zonepath;
++      i = 0;
++      if (top == NULL)
++              return (false);
++      zonepath = &(top[0]);
++      while (*zonepath != '\0') {
++              if (strcmp(path, zonepath) == 0)
++                      return (true);
++              i++;
++              zonepath = &(top[i*PATH_MAX]);
++      }
  
-+	i = 0;
-+	if (top == NULL)
-+		return (false);
-+	zonepath = &(top[0]);
-+	while (*zonepath != '\0') {
-+		if (strcmp(path, zonepath) == 0)
-+			return (true);
-+		i++;
-+		zonepath = &(top[i*PATH_MAX]);
-+	}
  	return (false);
  }
- 
[email protected]@ -890,7 +931,6 @@
[email protected]@ -884,7 +924,6 @@
  #if defined(__SVR4) && defined(__sun)
  	if (load_zones_path_list() != 0) {
  		dE("Failed to load zones path info. Recursing non-global zones.");
--- a/components/openscap/patches/zzz_fts_sun.h.patch	Mon Jun 27 15:00:28 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-This patch has been submitted and accepted by
-upstream and can be removed when we bring in 
-the  next version 1.2.9, which will be done
-by 2016-Jun-01.
-
---- openscap-1.2.6/src/OVAL/fts_sun.h~1~	2016-03-16 10:49:51.181254807 -0700
-+++ openscap-1.2.6/src/OVAL/fts_sun.h	2016-03-16 10:50:51.407098175 -0700
[email protected]@ -248,5 +248,9 @@
- __END_DECLS
- 
- #endif /* fts.h */
-+#else
-+#if defined(__SVR4) && defined(__sun)
-+#include <fts.h>
-+#endif /* defined(__SVR4) && defined(__sun) */ 
- 
- #endif /* HAVE_FTS_OPEN */