author | Rich Burridge <rich.burridge@oracle.com> |
Mon, 05 Jan 2015 13:33:36 -0800 | |
changeset 3581 | ac4a2e93e035 |
parent 1369 | 20813e08fff3 |
permissions | -rw-r--r-- |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
1 |
This patch fixes the issue with recursing directories when local is specified |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
2 |
on solaris. It no longer traverses remote and pseudo file systems like proc, |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
3 |
etc. |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
4 |
|
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
5 |
This patch has not been contributed upstream, but is planned to be done by |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
6 |
2013-Jul-12. |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
7 |
|
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
8 |
--- openscap-0.9.5/src/OVAL/probes/oval_fts.c.~1~ 2013-01-14 05:21:10.139830956 -0800 |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
9 |
+++ openscap-0.9.5/src/OVAL/probes/oval_fts.c 2013-02-27 14:12:10.322103381 -0800 |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
10 |
@@ -44,11 +44,11 @@ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
11 |
#include "oval_fts.h" |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
12 |
#if defined(__SVR4) && defined(__sun) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
13 |
#include "fts_sun.h" |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
14 |
+#include <sys/mntent.h> |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
15 |
#else |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
16 |
#include <fts.h> |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
17 |
#endif |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
18 |
|
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
19 |
-#undef OSCAP_FTS_DEBUG |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
20 |
|
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
21 |
static OVAL_FTS *OVAL_FTS_new() |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
22 |
{ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
23 |
@@ -130,14 +130,73 @@ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
24 |
return; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
25 |
} |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
26 |
|
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
27 |
+#if defined(__SVR4) && defined(__sun) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
28 |
+#ifndef MNTTYPE_SMB |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
29 |
+#define MNTTYPE_SMB "smb" |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
30 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
31 |
+#ifndef MNTTYPE_PROC |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
32 |
+#define MNTTYPE_PROC "proc" |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
33 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
34 |
+ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
35 |
+static bool valid_remote_fs(char *fstype) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
36 |
+{ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
37 |
+ if (strcmp(fstype, MNTTYPE_NFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
38 |
+ strcmp(fstype, MNTTYPE_SMBFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
39 |
+ strcmp(fstype, MNTTYPE_SMB) == 0) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
40 |
+ return (true); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
41 |
+ return (false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
42 |
+} |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
43 |
+ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
44 |
+static bool valid_local_fs(char *fstype) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
45 |
+{ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
46 |
+ if (strcmp(fstype, MNTTYPE_SWAP) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
47 |
+ strcmp(fstype, MNTTYPE_MNTFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
48 |
+ strcmp(fstype, MNTTYPE_CTFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
49 |
+ strcmp(fstype, MNTTYPE_OBJFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
50 |
+ strcmp(fstype, MNTTYPE_SHAREFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
51 |
+ strcmp(fstype, MNTTYPE_PROC) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
52 |
+ strcmp(fstype, MNTTYPE_LOFS) == 0 || |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
53 |
+ strcmp(fstype, MNTTYPE_AUTOFS) == 0) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
54 |
+ return (false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
55 |
+ return (true); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
56 |
+} |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
57 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
58 |
+ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
59 |
static bool OVAL_FTS_localp(OVAL_FTS *ofts, const char *path, void *id) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
60 |
{ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
61 |
+#if defined(__SVR4) && defined(__sun) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
62 |
+ if (id != NULL && (*(char*)id) != '\0') { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
63 |
+ /* if not a valid local fs skip */ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
64 |
+ if (valid_local_fs((char*)id)) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
65 |
+ /* if recurse is local , skip remote fs */ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
66 |
+ if (ofts->filesystem == OVAL_RECURSE_FS_LOCAL) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
67 |
+ return (!valid_remote_fs((char*)id)); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
68 |
+ } |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
69 |
+ return (true); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
70 |
+ } |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
71 |
+ return (false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
72 |
+ } else if (path != NULL) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
73 |
+ /* id was not set, because fts_read failed to stat the node */ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
74 |
+ struct stat sb; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
75 |
+ if ((stat(path, &sb) == 0) && (valid_local_fs(sb.st_fstype))) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
76 |
+ /* if recurse is local , skip remote fs */ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
77 |
+ if (ofts->filesystem == OVAL_RECURSE_FS_LOCAL) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
78 |
+ return (!valid_remote_fs(sb.st_fstype)); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
79 |
+ } |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
80 |
+ return (true); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
81 |
+ } |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
82 |
+ return (false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
83 |
+ } else { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
84 |
+ return (false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
85 |
+ } |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
86 |
+#else |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
87 |
if (id != NULL) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
88 |
return (fsdev_search(ofts->localdevs, id) == 1 ? true : false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
89 |
else if (path != NULL) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
90 |
return (fsdev_path(ofts->localdevs, path) == 1 ? true : false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
91 |
else |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
92 |
return (false); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
93 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
94 |
} |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
95 |
|
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
96 |
static char *__regex_locate(char *str) |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
97 |
@@ -695,6 +754,9 @@ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
98 |
} |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
99 |
|
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
100 |
if (filesystem == OVAL_RECURSE_FS_LOCAL) { |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
101 |
+#if defined(__SVR4) && defined(__sun) |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
102 |
+ ofts->localdevs = NULL; |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
103 |
+#else |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
104 |
ofts->localdevs = fsdev_init(NULL, 0); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
105 |
if (ofts->localdevs == NULL) { |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
106 |
dE("fsdev_init() failed.\n"); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
107 |
@@ -705,6 +767,7 @@ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
108 |
oval_fts_close(ofts); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
109 |
return (NULL); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
110 |
} |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
111 |
+#endif |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
112 |
} else if (filesystem == OVAL_RECURSE_FS_DEFINED) { |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
113 |
/* store the device id for future comparison */ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
114 |
FTSENT *fts_ent; |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
115 |
@@ -745,7 +808,6 @@ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
116 |
fts_ent = fts_read(ofts->ofts_match_path_fts); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
117 |
if (fts_ent == NULL) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
118 |
return NULL; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
119 |
- |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
120 |
switch (fts_ent->fts_info) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
121 |
case FTS_DP: |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
122 |
continue; |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
123 |
@@ -769,13 +831,21 @@ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
124 |
fts_set(ofts->ofts_match_path_fts, fts_ent, FTS_FOLLOW); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
125 |
continue; |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
126 |
} |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
127 |
- |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
128 |
+#if defined(__SVR4) && defined(__sun) |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
129 |
+ /* pseudo filesystems will be skipped */ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
130 |
+ /* don't recurse into remote fs if local is specified */ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
131 |
+ if ((fts_ent->fts_info == FTS_D || fts_ent->fts_info == FTS_SL) |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
132 |
+ && (!OVAL_FTS_localp(ofts, fts_ent->fts_path, |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
133 |
+ (fts_ent->fts_statp != NULL) ? |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
134 |
+ &fts_ent->fts_statp->st_fstype : NULL))) { |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
135 |
+#else |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
136 |
/* don't recurse into non-local filesystems */ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
137 |
if (ofts->filesystem == OVAL_RECURSE_FS_LOCAL |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
138 |
&& (fts_ent->fts_info == FTS_D || fts_ent->fts_info == FTS_SL) |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
139 |
&& (!OVAL_FTS_localp(ofts, fts_ent->fts_path, |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
140 |
(fts_ent->fts_statp != NULL) ? |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
141 |
&fts_ent->fts_statp->st_dev : NULL))) { |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
142 |
+#endif |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
143 |
dI("Don't recurse into non-local filesystems, skipping '%s'.\n", fts_ent->fts_path); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
144 |
fts_set(ofts->ofts_recurse_path_fts, fts_ent, FTS_SKIP); |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
145 |
continue; |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
146 |
@@ -964,6 +1034,15 @@ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
147 |
continue; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
148 |
} |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
149 |
} |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
150 |
+#if defined(__SVR4) && defined(__sun) |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
151 |
+ /* pseudo filesystems will be skipped */ |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
152 |
+ /* don't recurse into remote fs if local is specified */ |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
153 |
+ if ((fts_ent->fts_info == FTS_D || |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
154 |
+ fts_ent->fts_info == FTS_SL) |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
155 |
+ && (!OVAL_FTS_localp(ofts, fts_ent->fts_path, |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
156 |
+ (fts_ent->fts_statp != NULL) ? |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
157 |
+ &fts_ent->fts_statp->st_fstype : NULL))) { |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
158 |
+#else |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
159 |
|
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
160 |
/* don't recurse into non-local filesystems */ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
161 |
if (ofts->filesystem == OVAL_RECURSE_FS_LOCAL |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
162 |
@@ -971,6 +1050,7 @@ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
163 |
&& (!OVAL_FTS_localp(ofts, fts_ent->fts_path, |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
164 |
(fts_ent->fts_statp != NULL) ? |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
165 |
&fts_ent->fts_statp->st_dev : NULL))) { |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
166 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
167 |
fts_set(ofts->ofts_recurse_path_fts, fts_ent, FTS_SKIP); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
168 |
continue; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
169 |
} |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
170 |
@@ -1039,12 +1119,18 @@ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
171 |
if (ofts->ofts_recurse_path_curdepth == 0) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
172 |
ofts->ofts_recurse_path_devid = fts_ent->fts_statp->st_dev; |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
173 |
*/ |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
174 |
- |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
175 |
+#if defined(__SVR4) && defined(__sun) |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
176 |
+ if ((!OVAL_FTS_localp(ofts, fts_ent->fts_path, |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
177 |
+ (fts_ent->fts_statp != NULL) ? |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
178 |
+ &fts_ent->fts_statp->st_fstype : NULL))) |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
179 |
+ break; |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
180 |
+#else |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
181 |
if (ofts->filesystem == OVAL_RECURSE_FS_LOCAL |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
182 |
&& (!OVAL_FTS_localp(ofts, fts_ent->fts_path, |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
183 |
(fts_ent->fts_statp != NULL) ? |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
184 |
&fts_ent->fts_statp->st_dev : NULL))) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
185 |
break; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
186 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
187 |
if (ofts->filesystem == OVAL_RECURSE_FS_DEFINED |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
188 |
&& ofts->ofts_recurse_path_devid != fts_ent->fts_statp->st_dev) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
189 |
break; |
1369
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
190 |
--- openscap-0.9.5/src/OVAL/fts_sun.c.~1~ 2012-11-06 05:51:31.668229747 -0800 |
20813e08fff3
16186483 Port openscap 0.9.7 to solaris
Jacob Varughese <jacob.varughese@oracle.com>
parents:
1169
diff
changeset
|
191 |
+++ openscap-0.9.5/src/OVAL/fts_sun.c 2013-02-27 11:32:47.333961072 -0800 |
1169
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
192 |
@@ -1022,6 +1022,10 @@ |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
193 |
p->fts_instr = FTS_NOINSTR; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
194 |
p->fts_number = 0; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
195 |
p->fts_pointer = NULL; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
196 |
+#if defined(__SVR4) && defined(__sun) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
197 |
+ if (!ISSET(FTS_NOSTAT)) |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
198 |
+ p->fts_statp->st_fstype[0] = '\0'; |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
199 |
+#endif |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
200 |
return (p); |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
201 |
} |
0643a2e92103
16238398 file probe fails when recurse_file_system=local is specified
Jacob Varughese <jacob.varughese@oracle.com>
parents:
diff
changeset
|
202 |