components/openscap/patches/smfproperty.patch
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Mon, 10 Oct 2016 13:26:21 -0700
changeset 7081 616e1d8621e7
parent 5111 e68e059c3456
child 7343 a6cfc180f5e8
permissions -rw-r--r--
24824653 improve gobject-introspection typelib dependency tracking
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4416
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     1
This patch provides the implementation of the smfproperty probe
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     2
on solaris.
5111
e68e059c3456 22188277 upgrade openscap to 1.2.6
Jacob Varughese <jacob.varughese@oracle.com>
parents: 5079
diff changeset
     3
This patch has not been contributed upstream but is planned to be contributed
e68e059c3456 22188277 upgrade openscap to 1.2.6
Jacob Varughese <jacob.varughese@oracle.com>
parents: 5079
diff changeset
     4
upstream.  Hoping to have it accepted by 2015-Dec-15.
4416
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     5
--- openscap-1.2.1/configure.ac.~3~	2015-04-22 16:20:53.433875799 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     6
+++ openscap-1.2.1/configure.ac	2015-04-22 16:25:56.053053597 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     7
@@ -257,6 +257,10 @@
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     8
 probe_systemdunitdependency_req_deps_missing=
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
     9
 probe_systemdunitdependency_opt_deps_ok=yes
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    10
 probe_systemdunitdependency_opt_deps_missing=
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    11
+probe_smfproperty_req_deps_ok=yes
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    12
+probe_smfproperty_req_deps_missing=
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    13
+probe_smfproperty_opt_deps_ok=yes
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    14
+probe_smfproperty_opt_deps_missing=
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    15
 
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    16
 #
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    17
 # env
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    18
@@ -1325,6 +1329,8 @@
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    19
 probe_systemdunitproperty_enabled=$probe_systemdunitproperty_req_deps_ok
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    20
 AM_CONDITIONAL([probe_systemdunitdependency_enabled], test "$probe_systemdunitdependency_req_deps_ok" = yes)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    21
 probe_systemdunitdependency_enabled=$probe_systemdunitdependency_req_deps_ok
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    22
+AM_CONDITIONAL([probe_smfproperty_enabled], test "$probe_smfproperty_req_deps_ok" = yes)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    23
+probe_smfproperty_enabled=$probe_smfproperty_req_deps_ok
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    24
 
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    25
 AM_CONDITIONAL([WANT_CCE],  test "$cce"  = yes)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    26
 
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    27
@@ -1736,6 +1742,12 @@
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    28
   probe_systemdunitdependency_table_result="NO (missing: $probe_systemdunitdependency_req_deps_missing)"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    29
 fi
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    30
 printf "  %-28s %s\n" "systemdunitdependency:" "$probe_systemdunitdependency_table_result"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    31
+if test "$probe_smfproperty_req_deps_ok" = "yes"; then
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    32
+  probe_smfproperty_table_result="yes"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    33
+else
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    34
+  probe_smfproperty_table_result="NO (missing: $probe_smfproperty_req_deps_missing)"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    35
+fi
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    36
+printf "  %-28s %s\n" "smfproperty:" "$probe_smfproperty_table_result"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    37
 echo
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    38
 echo "  === configuration ==="
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    39
 echo "  probe directory set to:      $probe_dir"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    40
--- openscap-1.2.1/src/OVAL/oval_enumerations.c.~1~	2015-04-22 16:40:36.569105567 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    41
+++ openscap-1.2.1/src/OVAL/oval_enumerations.c	2015-04-22 16:41:10.935676772 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    42
@@ -512,6 +512,7 @@
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    43
 	{OVAL_SOLARIS_SMF, "smf"},
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    44
 	{OVAL_SOLARIS_NDD, "ndd"},
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    45
 	{OVAL_SOLARIS_PACKAGECHECK, "packagecheck"},
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    46
+	{OVAL_SOLARIS_SMFPROPERTY, "smfproperty"},
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    47
 	{OVAL_SUBTYPE_UNKNOWN, NULL}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    48
 };
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    49
 
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    50
--- openscap-1.2.1/src/OVAL/probes/Makefile.am.~1~	2015-04-22 16:43:21.761989228 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    51
+++ openscap-1.2.1/src/OVAL/probes/Makefile.am	2015-04-22 16:44:11.722065041 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    52
@@ -202,6 +202,11 @@
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    53
 probe_smf_SOURCES= unix/solaris/smf.c
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    54
 endif
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    55
 
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    56
+if probe_smfproperty_enabled
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    57
+pkglibexec_PROGRAMS += probe_smfproperty
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    58
+probe_smfproperty_SOURCES= unix/solaris/smfproperty.c
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    59
+endif
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    60
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    61
 endif
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    62
 
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    63
 #
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    64
--- openscap-1.2.3/src/OVAL/probes/unix/solaris/smfproperty.c.~1~	2015-06-02 21:28:41.068464123 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    65
+++ openscap-1.2.3/src/OVAL/probes/unix/solaris/smfproperty.c	2015-06-03 09:48:55.973035835 -0700
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    66
@@ -0,0 +1,385 @@
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    67
+/**
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    68
+ * @file smfproperty.c
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    69
+ * @brief smfproperty probe
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    70
+ * @author "Jacob Varughese" <[email protected]>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    71
+ *
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    72
+ * This probe processes retrieves the properties of smf services.
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    73
+ */
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    74
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    75
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    76
+#include "probe-api.h"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    77
+#ifdef HAVE_CONFIG_H
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    78
+#include <config.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    79
+#endif
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    80
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    81
+#if	defined(__SVR4) && defined(__sun)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    82
+#include <stdlib.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    83
+#include <string.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    84
+#include <stdio.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    85
+#include <errno.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    86
+#include <sys/stat.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    87
+#include <ctype.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    88
+#include <sys/types.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    89
+#include <limits.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    90
+#include <unistd.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    91
+#include <libscf.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    92
+#include <libscf_priv.h>
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    93
+#include "seap.h"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    94
+#include "probe/entcmp.h"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    95
+#include "alloc.h"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    96
+#include "common/debug_priv.h"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    97
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    98
+#ifndef	SCF_PG_START
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
    99
+#define	SCF_PG_START	"start"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   100
+#endif
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   101
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   102
+#ifndef	SCF_SNAPSHOT_RUNNING
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   103
+#define	SCF_SNAPSHOT_RUNNING	"running"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   104
+#endif
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   105
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   106
+#define	MAX_SCF_VALUE_LENGTH	1024
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   107
+/* Convenience structure for the results being reported */
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   108
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   109
+/*
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   110
+ * smfproperty probe:
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   111
+ *
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   112
+ *
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   113
+ * fmri
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   114
+ * service
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   115
+ * instance
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   116
+ * property
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   117
+ * value
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   118
+ */
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   119
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   120
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   121
+/* Convenience structure for the results being reported */
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   122
+struct result_info {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   123
+	char *fmri;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   124
+	char *service;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   125
+	char *instance;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   126
+	char *property;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   127
+	char *value;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   128
+};
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   129
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   130
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   131
+static char *
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   132
+strdup_check(char *p)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   133
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   134
+	char *ret;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   135
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   136
+	if ((ret = strdup(p)) == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   137
+		dE("Error: Out of Memory error.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   138
+		exit(PROBE_ENOMEM);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   139
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   140
+	return ret;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   141
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   142
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   143
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   144
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   145
+static void
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   146
+report_smfproperty(struct result_info *res, probe_ctx *ctx)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   147
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   148
+	SEXP_t *item;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   149
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   150
+	item = probe_item_create(OVAL_SOLARIS_SMFPROPERTY, NULL,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   151
+	    "fmri", OVAL_DATATYPE_STRING, res->fmri,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   152
+	    "service", OVAL_DATATYPE_STRING, res->service,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   153
+	    "instance", OVAL_DATATYPE_STRING, res->instance,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   154
+	    "property", OVAL_DATATYPE_STRING, res->property,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   155
+	    "value", OVAL_DATATYPE_STRING,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   156
+	    res->value,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   157
+	    NULL);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   158
+	probe_item_collect(ctx, item);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   159
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   160
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   161
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   162
+static int
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   163
+convert_prop(scf_handle_t *hdl, const scf_property_t *prop,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   164
+    struct result_info *res, probe_ctx *ctx)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   165
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   166
+	char propname[256];
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   167
+	scf_iter_t *iter = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   168
+	scf_value_t *value = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   169
+	ssize_t size = 0, len = 0, i = 0;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   170
+	char *buffer;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   171
+	int cur_size;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   172
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   173
+	if (prop == NULL)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   174
+		return 0;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   175
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   176
+	if (scf_property_get_name(prop, propname,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   177
+	    sizeof(propname)) < 0) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   178
+		dE("Cannot get name of property\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   179
+		dE("Error: %s\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   180
+		return 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   181
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   182
+	if ((value = scf_value_create(hdl)) == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   183
+		dE("Cannot create value from handle for prop:%s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   184
+		    propname);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   185
+		dE("Error: %s\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   186
+		return 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   187
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   188
+	if ((iter = scf_iter_create(hdl)) == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   189
+		dE("Cannot create value iterator for prop:%s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   190
+		    propname);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   191
+		dE("Error: %s\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   192
+		return 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   193
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   194
+	if (scf_iter_property_values(iter, prop) != 0) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   195
+		dE("Cannot iterate values  for prop:%s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   196
+		    propname);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   197
+		dE("Error: %s\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   198
+		return 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   199
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   200
+	buffer = malloc(MAX_SCF_VALUE_LENGTH);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   201
+	if (buffer == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   202
+		dE("Out of Memory Error.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   203
+		exit(PROBE_ENOMEM);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   204
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   205
+	buffer[0] = '\0';
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   206
+	cur_size = MAX_SCF_VALUE_LENGTH;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   207
+	while ((scf_iter_next_value(iter, value)) > 0) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   208
+		char *tmp;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   209
+		i++;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   210
+		size = scf_value_get_as_string(value, NULL, 0) + 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   211
+		if (size < 0) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   212
+			dE("Cannot get value for prop:%s size is"
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   213
+			    " invalid\n", propname);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   214
+			dE("Error: %s\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   215
+			return 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   216
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   217
+		if ((size + len + 2) > cur_size) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   218
+			cur_size = cur_size * 2 + size;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   219
+			buffer = realloc(buffer, cur_size);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   220
+			if (buffer == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   221
+				dE("Out of Memory Error.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   222
+				exit(PROBE_ENOMEM);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   223
+			}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   224
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   225
+		if (i > 1) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   226
+			buffer[len -1] = ' ';
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   227
+			buffer[len] = '\0';
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   228
+			tmp = &buffer[len];
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   229
+		} else {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   230
+			tmp = &buffer[0];
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   231
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   232
+		scf_value_get_as_string(value, tmp, size);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   233
+		len += size;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   234
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   235
+	res->value = buffer;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   236
+	report_smfproperty(res, ctx);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   237
+	dI("fmri=% service=%s instance=%s property=%s value=%s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   238
+	    res->fmri, res->service, res->instance, res->property, res->value);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   239
+	free(buffer);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   240
+	return 0;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   241
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   242
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   243
+static int
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   244
+get_smf_prop(scf_handle_t *h, const scf_service_t *service,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   245
+    const scf_instance_t *instance, const char *prop_grp_name,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   246
+    const char *prop_name, struct result_info *res, probe_ctx *ctx)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   247
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   248
+	scf_propertygroup_t *pg = scf_pg_create(h);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   249
+	scf_property_t *prop = scf_property_create(h);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   250
+	int rc;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   251
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   252
+	if (pg == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   253
+		dE("Unable to create property group from handle.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   254
+		dE("prop_grp_name=%s prop_name=%s.\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   255
+		    prop_grp_name, prop_name);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   256
+		dE("Error: %s.\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   257
+		rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   258
+		goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   259
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   260
+	if (prop == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   261
+		dE("Unable to create property from handle.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   262
+		dE("prop_grp_name=%s prop_name=%s.\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   263
+		    prop_grp_name, prop_name);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   264
+		dE("Error: %s.\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   265
+		rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   266
+		goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   267
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   268
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   269
+	if (instance == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   270
+		if (scf_service_get_pg(service, prop_grp_name, pg) == -1 ||
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   271
+		    scf_pg_get_property(pg, prop_name, prop) == -1) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   272
+			dE("Error: Could not read %s/%s from service.\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   273
+			    prop_grp_name, prop_name);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   274
+			rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   275
+			goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   276
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   277
+	} else {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   278
+		scf_snapshot_t *snap;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   279
+		if ((snap = scf_snapshot_create(h)) == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   280
+			dE("Unable to create snapshot from handle.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   281
+			dE("fmri=%s \n", res->fmri);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   282
+			dE("Error: %s.\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   283
+			rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   284
+			goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   285
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   286
+		if (scf_instance_get_snapshot(instance, SCF_SNAPSHOT_RUNNING,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   287
+		    snap) == -1) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   288
+			dE("Unable to get running snapshot.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   289
+			dE("for fmri=%s \n", res->fmri);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   290
+			dE("Error: %s.\n", scf_strerror(scf_error()));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   291
+			rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   292
+			goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   293
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   294
+		if (scf_instance_get_pg_composed(instance, snap,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   295
+		    prop_grp_name, pg) == -1) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   296
+			dE("Error: Could not read "
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   297
+			    " %s/%s property from snapshot for %s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   298
+			    prop_grp_name, prop_name, res->fmri);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   299
+			rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   300
+			scf_snapshot_destroy(snap);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   301
+			goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   302
+		}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   303
+		scf_snapshot_destroy(snap);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   304
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   305
+	if (scf_pg_get_property(pg, prop_name, prop) == -1) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   306
+		dE("Error: Could not read %s/%s property %s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   307
+		    prop_grp_name, prop_name, res->fmri);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   308
+		rc = 1;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   309
+		goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   310
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   311
+	rc = convert_prop(h, prop, res, ctx);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   312
+cleanup:
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   313
+	scf_property_destroy(prop);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   314
+	scf_pg_destroy(pg);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   315
+	return rc;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   316
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   317
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   318
+static int
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   319
+collect_smfprop_info(char *asvc, char *ainst, char *aprop,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   320
+    probe_ctx *ctx)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   321
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   322
+	struct result_info r;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   323
+	int rc = 0;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   324
+	char *propgrp = NULL, *prop = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   325
+	char *tmp = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   326
+	scf_handle_t *scf_hdl;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   327
+	scf_instance_t *inst = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   328
+	scf_service_t *svc = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   329
+	char *p = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   330
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   331
+	memset(&r, 0, sizeof(r));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   332
+	r.service = asvc;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   333
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   334
+	if (ainst == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   335
+		r.fmri = strdup_check(asvc);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   336
+	} else { /* service name is service:instance */
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   337
+		asprintf(&r.fmri, "%s:%s", asvc, ainst);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   338
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   339
+	if (r.fmri == NULL)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   340
+		_exit(1);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   341
+	if ((scf_hdl = scf_handle_create(SCF_VERSION)) == NULL ||
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   342
+	    scf_handle_bind(scf_hdl) != 0 ||
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   343
+	    (svc = scf_service_create(scf_hdl)) == NULL ||
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   344
+	    (ainst != NULL &&
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   345
+	    (inst = scf_instance_create(scf_hdl)) == NULL)) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   346
+		rc = PROBE_EFATAL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   347
+		goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   348
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   349
+	if (scf_handle_decode_fmri(scf_hdl, r.fmri, NULL, svc,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   350
+	    (ainst == NULL ? NULL : inst), NULL, NULL,
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   351
+	    SCF_DECODE_FMRI_EXACT) != 0 ||
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   352
+	    scf_error() == SCF_ERROR_NOT_FOUND) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   353
+		dE("scf_handle_decode_fmri failed.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   354
+		goto cleanup;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   355
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   356
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   357
+	tmp = strdup_check(aprop);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   358
+	if ((p = strstr(tmp, SCF_FMRI_PROPERTY_PREFIX)) != NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   359
+		*p = '\0';
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   360
+		p++;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   361
+		prop = p;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   362
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   363
+	propgrp = tmp;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   364
+	dI("r.service_name=%s\n", r.service);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   365
+	dI("service:%s instance:%s propgrp:%s prop:%s\n",
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   366
+	    STR(asvc), STR(ainst), STR(propgrp), STR(prop));
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   367
+	r.instance = ainst;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   368
+	r.property = aprop;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   369
+	if (get_smf_prop(scf_hdl, svc, inst, propgrp, prop, &r, ctx) > 0) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   370
+		r.fmri = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   371
+		dE("get_smf_prop failed.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   372
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   373
+	dI("Service exists:%s\n", r.service);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   374
+cleanup:
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   375
+	free(tmp);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   376
+	free(r.fmri);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   377
+	scf_handle_destroy(scf_hdl);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   378
+	scf_handle_unbind(scf_hdl);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   379
+	scf_service_destroy(svc);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   380
+	scf_instance_destroy(inst);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   381
+	return rc;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   382
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   383
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   384
+int
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   385
+probe_main(probe_ctx *ctx, void *arg)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   386
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   387
+	SEXP_t *probe_in, *service = NULL, *instance = NULL, *property = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   388
+	SEXP_t *service_val = NULL, *instance_val = NULL, *property_val = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   389
+	char *service_str = NULL, *instance_str = NULL, *property_str = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   390
+	int rc;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   391
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   392
+	probe_in = probe_ctx_getobject(ctx);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   393
+	if (probe_in == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   394
+		return PROBE_ENOOBJ;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   395
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   396
+	service = probe_obj_getent(probe_in, "service", 1);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   397
+	if (service == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   398
+		dE("No service in context.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   399
+		return PROBE_ENOENT;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   400
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   401
+	instance = probe_obj_getent(probe_in, "instance", 1);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   402
+	property = probe_obj_getent(probe_in, "property", 1);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   403
+	if (property == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   404
+		dE("No property in context.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   405
+		rc = PROBE_ENOENT;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   406
+		goto error;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   407
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   408
+	service_val = probe_ent_getval(service);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   409
+	if (service_val == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   410
+		dE("Get service value failed.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   411
+		rc = PROBE_ENOVAL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   412
+		goto error;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   413
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   414
+	service_str = SEXP_string_cstr(service_val);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   415
+	dI("service in context: %s.\n", service_str);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   416
+	if (instance != NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   417
+		instance_val = probe_ent_getval(instance);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   418
+		instance_str = SEXP_string_cstr(instance_val);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   419
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   420
+	if (instance_str != NULL && strcmp(instance_str, "") == 0)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   421
+		instance_str = NULL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   422
+	dI("instance in context: %s.\n", instance_str);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   423
+	property_val = probe_ent_getval(property);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   424
+	if (property_val == NULL) {
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   425
+		dE("Get property value failed.\n");
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   426
+		rc = PROBE_ENOVAL;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   427
+		goto error;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   428
+	}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   429
+	property_str = SEXP_string_cstr(property_val);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   430
+	dI("property in context: %s.\n", property_str);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   431
+	rc = collect_smfprop_info(service_str, instance_str, property_str, ctx);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   432
+error:
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   433
+	free(service_str);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   434
+	free(instance_str);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   435
+	free(property_str);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   436
+	SEXP_free(service);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   437
+	SEXP_free(instance);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   438
+	SEXP_free(property);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   439
+	SEXP_free(service_val);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   440
+	SEXP_free(instance_val);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   441
+	SEXP_free(property_val);
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   442
+	return rc;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   443
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   444
+#else
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   445
+
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   446
+int
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   447
+probe_main(probe_ctx *ctx, void *probe_arg)
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   448
+{
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   449
+	return PROBE_EOPNOTSUPP;
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   450
+}
9a721d1b6b2e 21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff changeset
   451
+#endif
5079
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   452
--- openscap-1.2.3/src/OVAL/probes/unix/solaris/smfproperty.c.~2~	2015-11-10 10:00:28.564892744 -0800
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   453
+++ openscap-1.2.3/src/OVAL/probes/unix/solaris/smfproperty.c	2015-11-10 10:03:34.496610180 -0800
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   454
@@ -38,6 +38,7 @@
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   455
 #endif
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   456
 
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   457
 #define	MAX_SCF_VALUE_LENGTH	1024
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   458
+#define	STR(x)	((x == NULL) ? "" : x)
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   459
 /* Convenience structure for the results being reported */
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   460
 
5d18f62e9f8a 21928864 oscap is limited to processing 32K records due to memory checks in the code
Jacob Varughese <jacob.varughese@oracle.com>
parents: 4416
diff changeset
   461
 /*