author | Jacob Varughese <jacob.varughese@oracle.com> |
Fri, 19 Sep 2014 14:19:10 -0700 | |
changeset 2103 | 92b50cf5c69e |
permissions | -rw-r--r-- |
2103
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
1 |
This patch fixes the issue, where the system_info probe fails on solaris, |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
2 |
when the network interfaces cannot be detected. Fix provides the default |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
3 |
loop back interface as default. The earlier patch was not a complete fix. |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
4 |
|
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
5 |
This patch has not been contributed upstream, but is planned to be done by |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
6 |
2014-Oct-15. |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
7 |
|
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
8 |
|
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
9 |
--- openscap-1.0.0/src/OVAL/probes/independent/system_info.c.~3~ 2014-09-18 11:08:42.983747329 -0700 |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
10 |
+++ openscap-1.0.0/src/OVAL/probes/independent/system_info.c 2014-09-18 12:41:13.266535881 -0700 |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
11 |
@@ -166,14 +166,16 @@ |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
12 |
static int get_ifs(SEXP_t *item) |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
13 |
{ |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
14 |
struct ifaddrs *ifaddr, *ifa; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
15 |
- int family, rc=1; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
16 |
+ int family, rc=0; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
17 |
char host[NI_MAXHOST], *mac; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
18 |
SEXP_t *attrs; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
19 |
SEXP_t *r0, *r1, *r2; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
20 |
- int item_added = 0; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
21 |
+#if defined(__SVR4) && defined(__sun) |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
22 |
+ int item_added = 0; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
23 |
+#endif |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
24 |
|
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
25 |
if (getifaddrs(&ifaddr) == -1) |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
26 |
- return rc; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
27 |
+ return 1; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
28 |
|
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
29 |
fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
30 |
if (fd < 0) |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
31 |
@@ -222,12 +224,15 @@ |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
32 |
r2 = SEXP_string_newf("%s", mac), |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
33 |
NULL); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
34 |
probe_item_ent_add(item, "interface", attrs, NULL); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
35 |
+#if defined(__SVR4) && defined(__sun) |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
36 |
item_added = 1; |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
37 |
+#endif |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
38 |
SEXP_vfree(attrs, r0, r1, r2, NULL); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
39 |
} |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
40 |
leave2: |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
41 |
close(fd); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
42 |
- if (item_added == 0) { |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
43 |
+#if defined(__SVR4) && defined(__sun) |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
44 |
+ if (item_added == 0 && rc == 0) { |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
45 |
attrs = probe_attr_creat("name", |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
46 |
r0 = SEXP_string_newf("dummy0"), |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
47 |
"ip_address", |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
48 |
@@ -238,6 +243,7 @@ |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
49 |
probe_item_ent_add(item, "interface", attrs, NULL); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
50 |
SEXP_vfree(attrs, r0, r1, r2, NULL); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
51 |
} |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
52 |
+#endif |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
53 |
leave1: |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
54 |
freeifaddrs(ifaddr); |
92b50cf5c69e
19559867 compliance fails when no network interface are defined
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
55 |
return rc; |