author | Jacob Varughese <jacob.varughese@oracle.com> |
Tue, 17 Mar 2015 17:29:09 -0700 | |
changeset 3965 | 15ec96132ff2 |
permissions | -rw-r--r-- |
3965
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
1 |
This patch fixes the issue when variables are used in XCCDF |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
2 |
and the selector value is outside the specified list of values |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
3 |
for the variable, prevents oscap from dumping core. |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
4 |
This patch does not need to be contributed upstream, as it is |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
5 |
from the upstream community. |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
6 |
This patch is based on https://github.com/OpenSCAP/openscap/commit/dd94c23cfafbd1ad0d316ccf4fa9489af4c68c74 |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
7 |
This patch will not be needed once we upgrade to 1.2.2 or higher. |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
8 |
--- openscap-1.2.1/src/XCCDF_POLICY/xccdf_policy.c.~1~ 2015-03-13 10:26:12.158240726 -0700 |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
9 |
+++ openscap-1.2.1/src/XCCDF_POLICY/xccdf_policy.c 2015-03-13 10:28:36.287476734 -0700 |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
10 |
@@ -2166,7 +2166,13 @@ |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
11 |
} |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
12 |
|
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
13 |
struct xccdf_value_instance *instance = xccdf_value_get_instance_by_selector((struct xccdf_value *) item, selector); |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
14 |
- return xccdf_value_instance_get_value(instance); |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
15 |
+ if (instance == NULL) { |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
16 |
+ oscap_seterr(OSCAP_EFAMILY_XCCDF, "Invalid selector '%s' for xccdf:value/@id='%s'. Using null value instead.", |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
17 |
+ selector, xccdf_value_get_id((struct xccdf_value *) item)); |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
18 |
+ return NULL; |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
19 |
+ } else { |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
20 |
+ return xccdf_value_instance_get_value(instance); |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
21 |
+ } |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
22 |
} |
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
23 |
|
15ec96132ff2
20694911 openscap fails when OVAL variable is used outside its defined set of values
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
24 |
static int xccdf_policy_get_refine_value_oper(struct xccdf_policy * policy, struct xccdf_item * item) |