Skip to content

Commit 0f6f7b7

Browse files
committed
OVAL/dpkginfo: Add offline mode support as OFFLINE_OWN.
Also added dpkginfo_probe_fini to the probe_table.
1 parent 5e5bc61 commit 0f6f7b7

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed

src/OVAL/probes/probe-table.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ static const probe_table_entry_t probe_table[] = {
246246
{OVAL_INDEPENDENT_XML_FILE_CONTENT, xmlfilecontent_probe_init, xmlfilecontent_probe_main, xmlfilecontent_probe_fini, xmlfilecontent_probe_offline_mode_supported},
247247
#endif
248248
#ifdef OPENSCAP_PROBE_LINUX_DPKGINFO
249-
{OVAL_LINUX_DPKG_INFO, dpkginfo_probe_init, dpkginfo_probe_main, NULL, NULL},
249+
{OVAL_LINUX_DPKG_INFO, dpkginfo_probe_init, dpkginfo_probe_main, dpkginfo_probe_fini, dpkginfo_probe_offline_mode_supported},
250250
#endif
251251
#ifdef OPENSCAP_PROBE_LINUX_IFLISTENERS
252252
{OVAL_LINUX_IFLISTENERS, NULL, iflisteners_probe_main, NULL, NULL},

src/OVAL/probes/unix/linux/dpkginfo-helper.cxx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ static int opencache (void) {
2828
if (pkgInitConfig (*_config) == false) return 0;
2929
if (pkgInitSystem (*_config, _system) == false) return 0;
3030

31-
FileFd *fd = new FileFd (_config->FindFile ("Dir::Cache::pkgcache"),
31+
const char* root = getenv("OSCAP_PROBE_ROOT");
32+
string pkgCacheRoot(root != NULL ? root : "");
33+
34+
FileFd *fd = new FileFd (pkgCacheRoot + _config->FindFile ("Dir::Cache::pkgcache"),
3235
FileFd::ReadOnly);
3336

3437
dpkg_mmap = new MMap (*fd, MMap::Public|MMap::ReadOnly);

src/OVAL/probes/unix/linux/dpkginfo_probe.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
#include "common/debug_priv.h"
5858
#include "public/oval_schema_version.h"
5959

60+
#include <probe/probe.h>
61+
6062
#include "dpkginfo-helper.h"
6163

6264
#include "dpkginfo_probe.h"
@@ -70,6 +72,9 @@ static struct dpkginfo_global g_dpkg = {
7072
.init_done = -1,
7173
};
7274

75+
int dpkginfo_probe_offline_mode_supported(void) {
76+
return PROBE_OFFLINE_OWN;
77+
}
7378

7479
void *dpkginfo_probe_init(void)
7580
{

src/OVAL/probes/unix/linux/dpkginfo_probe.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
#include "probe-api.h"
2727

28+
int dpkginfo_probe_offline_mode_supported(void);
2829
void *dpkginfo_probe_init(void);
2930
int dpkginfo_probe_main(probe_ctx *ctx, void *arg);
3031
void dpkginfo_probe_fini(void *arg);

0 commit comments

Comments
 (0)