author | Jacob Varughese <jacob.varughese@oracle.com> |
Wed, 11 Nov 2015 11:24:50 -0800 | |
changeset 5079 | 5d18f62e9f8a |
parent 4416 | 9a721d1b6b2e |
child 5111 | e68e059c3456 |
permissions | -rw-r--r-- |
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. |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
3 |
This patch has not been contributed upstream and will be done |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
4 |
by 2015-Jul-01. |
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/src/OVAL/oval_probe.c.~2~ 2015-04-21 09:56:24.689455398 -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/src/OVAL/oval_probe.c 2015-04-21 09:56:58.950099871 -0700 |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
7 |
@@ -91,7 +91,8 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
8 |
OVAL_PROBE_EXTERNAL(OVAL_UNIX_FILEEXTENDEDATTRIBUTE, "fileextendedattribute"), |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
9 |
OVAL_PROBE_EXTERNAL(OVAL_UNIX_GCONF, "gconf"), |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
10 |
OVAL_PROBE_EXTERNAL(OVAL_UNIX_ROUTINGTABLE, "routingtable"), |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
11 |
- OVAL_PROBE_EXTERNAL(OVAL_SOLARIS_SMF, "smf") |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
12 |
+ OVAL_PROBE_EXTERNAL(OVAL_SOLARIS_SMF, "smf"), |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
13 |
+ OVAL_PROBE_EXTERNAL(OVAL_SOLARIS_SMFPROPERTY, "smfproperty") |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
14 |
}; |
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 |
#define __PROBE_META_COUNT (sizeof OSCAP_GSYM(__probe_meta)/sizeof OSCAP_GSYM(__probe_meta)[0]) |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
17 |
--- openscap-1.2.1/src/OVAL/public/oval_types.h.~1~ 2015-01-08 07:30:33.115663437 -0800 |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
18 |
+++ openscap-1.2.1/src/OVAL/public/oval_types.h 2015-04-22 16:01:03.302332582 -0700 |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
19 |
@@ -238,7 +238,8 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
20 |
OVAL_SOLARIS_SMF = OVAL_FAMILY_SOLARIS + 4, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
21 |
OVAL_SOLARIS_PATCH54 = OVAL_FAMILY_SOLARIS + 5, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
22 |
OVAL_SOLARIS_NDD = OVAL_FAMILY_SOLARIS + 6, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
23 |
- OVAL_SOLARIS_PACKAGECHECK = OVAL_FAMILY_SOLARIS + 7 |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
24 |
+ OVAL_SOLARIS_PACKAGECHECK = OVAL_FAMILY_SOLARIS + 7, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
25 |
+ OVAL_SOLARIS_SMFPROPERTY = OVAL_FAMILY_SOLARIS + 8 |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
26 |
} oval_solaris_subtype_t; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
27 |
|
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
28 |
/// Unix subtypes |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
29 |
--- 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
|
30 |
+++ 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
|
31 |
@@ -257,6 +257,10 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
32 |
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
|
33 |
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
|
34 |
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
|
35 |
+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
|
36 |
+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
|
37 |
+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
|
38 |
+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
|
39 |
|
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
40 |
# |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
41 |
# env |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
42 |
@@ -1325,6 +1329,8 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
43 |
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
|
44 |
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
|
45 |
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
|
46 |
+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
|
47 |
+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
|
48 |
|
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
49 |
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
|
50 |
|
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
51 |
@@ -1736,6 +1742,12 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
52 |
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
|
53 |
fi |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
54 |
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
|
55 |
+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
|
56 |
+ 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
|
57 |
+else |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
58 |
+ 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
|
59 |
+fi |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
60 |
+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
|
61 |
echo |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
62 |
echo " === configuration ===" |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
63 |
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
|
64 |
--- 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
|
65 |
+++ 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
|
66 |
@@ -512,6 +512,7 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
67 |
{OVAL_SOLARIS_SMF, "smf"}, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
68 |
{OVAL_SOLARIS_NDD, "ndd"}, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
69 |
{OVAL_SOLARIS_PACKAGECHECK, "packagecheck"}, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
70 |
+ {OVAL_SOLARIS_SMFPROPERTY, "smfproperty"}, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
71 |
{OVAL_SUBTYPE_UNKNOWN, NULL} |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
72 |
}; |
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 |
--- 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
|
75 |
+++ 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
|
76 |
@@ -202,6 +202,11 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
77 |
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
|
78 |
endif |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
79 |
|
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
80 |
+if probe_smfproperty_enabled |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
81 |
+pkglibexec_PROGRAMS += probe_smfproperty |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
82 |
+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
|
83 |
+endif |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
84 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
85 |
endif |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
86 |
|
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
87 |
# |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
88 |
--- 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
|
89 |
+++ 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
|
90 |
@@ -0,0 +1,385 @@ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
91 |
+/** |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
92 |
+ * @file smfproperty.c |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
93 |
+ * @brief smfproperty probe |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
94 |
+ * @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
|
95 |
+ * |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
96 |
+ * 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
|
97 |
+ */ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
98 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
99 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
100 |
+#include "probe-api.h" |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
101 |
+#ifdef HAVE_CONFIG_H |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
102 |
+#include <config.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
103 |
+#endif |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
104 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
105 |
+#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
|
106 |
+#include <stdlib.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
107 |
+#include <string.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
108 |
+#include <stdio.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
109 |
+#include <errno.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
110 |
+#include <sys/stat.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
111 |
+#include <ctype.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
112 |
+#include <sys/types.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
113 |
+#include <limits.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
114 |
+#include <unistd.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
115 |
+#include <libscf.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
116 |
+#include <libscf_priv.h> |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
117 |
+#include "seap.h" |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
118 |
+#include "probe/entcmp.h" |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
119 |
+#include "alloc.h" |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
120 |
+#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
|
121 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
122 |
+#ifndef SCF_PG_START |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
123 |
+#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
|
124 |
+#endif |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
125 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
126 |
+#ifndef SCF_SNAPSHOT_RUNNING |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
127 |
+#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
|
128 |
+#endif |
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 |
+#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
|
131 |
+/* 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
|
132 |
+ |
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 |
+ * smfproperty probe: |
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 |
+ * |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
137 |
+ * fmri |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
138 |
+ * service |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
139 |
+ * instance |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
140 |
+ * property |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
141 |
+ * value |
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 |
+/* 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
|
146 |
+struct result_info { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
147 |
+ char *fmri; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
148 |
+ char *service; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
149 |
+ char *instance; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
150 |
+ char *property; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
151 |
+ char *value; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
152 |
+}; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
153 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
154 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
155 |
+static char * |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
156 |
+strdup_check(char *p) |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
157 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
158 |
+ char *ret; |
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 |
+ 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
|
161 |
+ 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
|
162 |
+ exit(PROBE_ENOMEM); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
163 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
164 |
+ return ret; |
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 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
167 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
168 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
169 |
+static void |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
170 |
+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
|
171 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
172 |
+ SEXP_t *item; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
173 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
174 |
+ 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
|
175 |
+ "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
|
176 |
+ "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
|
177 |
+ "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
|
178 |
+ "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
|
179 |
+ "value", OVAL_DATATYPE_STRING, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
180 |
+ res->value, |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
181 |
+ NULL); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
182 |
+ 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
|
183 |
+} |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
184 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
185 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
186 |
+static int |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
187 |
+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
|
188 |
+ 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
|
189 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
190 |
+ char propname[256]; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
191 |
+ 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
|
192 |
+ 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
|
193 |
+ 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
|
194 |
+ char *buffer; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
195 |
+ int cur_size; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
196 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
197 |
+ if (prop == NULL) |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
198 |
+ return 0; |
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 |
+ 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
|
201 |
+ sizeof(propname)) < 0) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
202 |
+ 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
|
203 |
+ 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
|
204 |
+ return 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
205 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
206 |
+ 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
|
207 |
+ 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
|
208 |
+ propname); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
209 |
+ 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
|
210 |
+ return 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
211 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
212 |
+ 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
|
213 |
+ 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
|
214 |
+ propname); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
215 |
+ 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
|
216 |
+ return 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
217 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
218 |
+ 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
|
219 |
+ 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
|
220 |
+ propname); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
221 |
+ 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
|
222 |
+ return 1; |
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 |
+ 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
|
225 |
+ if (buffer == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
226 |
+ 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
|
227 |
+ exit(PROBE_ENOMEM); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
228 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
229 |
+ buffer[0] = '\0'; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
230 |
+ 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
|
231 |
+ 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
|
232 |
+ char *tmp; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
233 |
+ i++; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
234 |
+ 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
|
235 |
+ if (size < 0) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
236 |
+ 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
|
237 |
+ " invalid\n", propname); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
238 |
+ 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
|
239 |
+ return 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
240 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
241 |
+ 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
|
242 |
+ 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
|
243 |
+ 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
|
244 |
+ if (buffer == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
245 |
+ 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
|
246 |
+ exit(PROBE_ENOMEM); |
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 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
249 |
+ if (i > 1) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
250 |
+ buffer[len -1] = ' '; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
251 |
+ buffer[len] = '\0'; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
252 |
+ tmp = &buffer[len]; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
253 |
+ } else { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
254 |
+ tmp = &buffer[0]; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
255 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
256 |
+ 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
|
257 |
+ len += size; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
258 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
259 |
+ res->value = buffer; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
260 |
+ report_smfproperty(res, ctx); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
261 |
+ 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
|
262 |
+ 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
|
263 |
+ free(buffer); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
264 |
+ return 0; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
265 |
+} |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
266 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
267 |
+static int |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
268 |
+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
|
269 |
+ 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
|
270 |
+ 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
|
271 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
272 |
+ 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
|
273 |
+ 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
|
274 |
+ int rc; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
275 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
276 |
+ if (pg == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
277 |
+ 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
|
278 |
+ 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
|
279 |
+ 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
|
280 |
+ 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
|
281 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
282 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
283 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
284 |
+ if (prop == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
285 |
+ 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
|
286 |
+ 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
|
287 |
+ 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
|
288 |
+ 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
|
289 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
290 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
291 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
292 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
293 |
+ if (instance == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
294 |
+ 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
|
295 |
+ 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
|
296 |
+ 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
|
297 |
+ 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
|
298 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
299 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
300 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
301 |
+ } else { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
302 |
+ scf_snapshot_t *snap; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
303 |
+ 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
|
304 |
+ 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
|
305 |
+ 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
|
306 |
+ 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
|
307 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
308 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
309 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
310 |
+ 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
|
311 |
+ snap) == -1) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
312 |
+ 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
|
313 |
+ 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
|
314 |
+ 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
|
315 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
316 |
+ goto cleanup; |
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 |
+ 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
|
319 |
+ 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
|
320 |
+ 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
|
321 |
+ " %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
|
322 |
+ 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
|
323 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
324 |
+ scf_snapshot_destroy(snap); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
325 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
326 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
327 |
+ scf_snapshot_destroy(snap); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
328 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
329 |
+ 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
|
330 |
+ 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
|
331 |
+ 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
|
332 |
+ rc = 1; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
333 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
334 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
335 |
+ 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
|
336 |
+cleanup: |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
337 |
+ scf_property_destroy(prop); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
338 |
+ scf_pg_destroy(pg); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
339 |
+ return rc; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
340 |
+} |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
341 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
342 |
+static int |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
343 |
+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
|
344 |
+ probe_ctx *ctx) |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
345 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
346 |
+ struct result_info r; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
347 |
+ int rc = 0; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
348 |
+ 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
|
349 |
+ char *tmp = NULL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
350 |
+ 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
|
351 |
+ 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
|
352 |
+ 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
|
353 |
+ char *p = NULL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
354 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
355 |
+ 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
|
356 |
+ r.service = asvc; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
357 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
358 |
+ if (ainst == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
359 |
+ 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
|
360 |
+ } 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
|
361 |
+ 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
|
362 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
363 |
+ if (r.fmri == NULL) |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
364 |
+ _exit(1); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
365 |
+ 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
|
366 |
+ 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
|
367 |
+ (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
|
368 |
+ (ainst != NULL && |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
369 |
+ (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
|
370 |
+ rc = PROBE_EFATAL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
371 |
+ goto cleanup; |
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 |
+ 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
|
374 |
+ (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
|
375 |
+ 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
|
376 |
+ 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
|
377 |
+ 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
|
378 |
+ goto cleanup; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
379 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
380 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
381 |
+ tmp = strdup_check(aprop); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
382 |
+ 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
|
383 |
+ *p = '\0'; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
384 |
+ p++; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
385 |
+ prop = p; |
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 |
+ propgrp = tmp; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
388 |
+ 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
|
389 |
+ 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
|
390 |
+ 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
|
391 |
+ r.instance = ainst; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
392 |
+ r.property = aprop; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
393 |
+ 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
|
394 |
+ r.fmri = NULL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
395 |
+ 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
|
396 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
397 |
+ 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
|
398 |
+cleanup: |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
399 |
+ free(tmp); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
400 |
+ free(r.fmri); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
401 |
+ 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
|
402 |
+ 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
|
403 |
+ scf_service_destroy(svc); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
404 |
+ scf_instance_destroy(inst); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
405 |
+ return rc; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
406 |
+} |
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 |
+int |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
409 |
+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
|
410 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
411 |
+ 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
|
412 |
+ 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
|
413 |
+ 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
|
414 |
+ int rc; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
415 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
416 |
+ 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
|
417 |
+ if (probe_in == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
418 |
+ return PROBE_ENOOBJ; |
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 |
+ 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
|
421 |
+ if (service == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
422 |
+ 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
|
423 |
+ return PROBE_ENOENT; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
424 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
425 |
+ 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
|
426 |
+ 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
|
427 |
+ if (property == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
428 |
+ 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
|
429 |
+ rc = PROBE_ENOENT; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
430 |
+ goto error; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
431 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
432 |
+ 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
|
433 |
+ if (service_val == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
434 |
+ 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
|
435 |
+ rc = PROBE_ENOVAL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
436 |
+ goto error; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
437 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
438 |
+ 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
|
439 |
+ 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
|
440 |
+ if (instance != NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
441 |
+ 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
|
442 |
+ 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
|
443 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
444 |
+ 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
|
445 |
+ instance_str = NULL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
446 |
+ 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
|
447 |
+ 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
|
448 |
+ if (property_val == NULL) { |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
449 |
+ 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
|
450 |
+ rc = PROBE_ENOVAL; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
451 |
+ goto error; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
452 |
+ } |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
453 |
+ 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
|
454 |
+ 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
|
455 |
+ 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
|
456 |
+error: |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
457 |
+ free(service_str); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
458 |
+ free(instance_str); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
459 |
+ free(property_str); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
460 |
+ SEXP_free(service); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
461 |
+ SEXP_free(instance); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
462 |
+ SEXP_free(property); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
463 |
+ SEXP_free(service_val); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
464 |
+ SEXP_free(instance_val); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
465 |
+ SEXP_free(property_val); |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
466 |
+ return rc; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
467 |
+} |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
468 |
+#else |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
469 |
+ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
470 |
+int |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
471 |
+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
|
472 |
+{ |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
473 |
+ return PROBE_EOPNOTSUPP; |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
474 |
+} |
9a721d1b6b2e
21051102 Need smfproperty probe to check smfproperty values in OVAL
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
475 |
+#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
|
476 |
--- 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
|
477 |
+++ 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
|
478 |
@@ -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
|
479 |
#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
|
480 |
|
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
|
481 |
#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
|
482 |
+#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
|
483 |
/* 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
|
484 |
|
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
|
485 |
/* |