Open SCAP Library
Data Structures | Macros | Functions | Variables
rpmverifypackage.c File Reference

rpmverifypackage probe More...

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <assert.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pcre.h>
#include <rpm/rpmdb.h>
#include <rpm/rpmlib.h>
#include <rpm/rpmts.h>
#include <rpm/rpmmacro.h>
#include <rpm/rpmlog.h>
#include <rpm/rpmfi.h>
#include <rpm/header.h>
#include <rpm/rpmcli.h>
#include <popt.h>
#include <probe-api.h>
#include <alloc.h>
#include <common/assume.h>
#include "debug_priv.h"
#include "probe/entcmp.h"

Data Structures

struct  rpmverifypackage_bhmap_t
 
struct  rpmverify_res
 
struct  rpmverify_global
 

Macros

#define HAVE_LIBRPM44   1 /* hack */
 
#define headerFormat(_h, _fmt, _emsg)   headerSprintf((_h),( _fmt), rpmTagTable, rpmHeaderFormats, (_emsg))
 
#define rpmFreeCrypto()   while(0)
 
#define rpmFreeFilesystems()   while(0)
 
#define RPMVERIFY_SKIP_CONFIG   0x1000000000000000
 
#define RPMVERIFY_SKIP_GHOST   0x2000000000000000
 
#define RPMVERIFY_RPMATTRMASK   0x00000000ffffffff
 
#define RPMVERIFY_LOCK
 
#define RPMVERIFY_UNLOCK
 
#define COMPARE_ENT(XXX)
 

Functions

void * probe_init (void)
 Dummy probe_fini function.
 
void probe_fini (void *ptr)
 Dummy probe_fini function.
 
int probe_main (probe_ctx *ctx, void *arg)
 

Variables

const rpmverifypackage_bhmap_t rpmverifypackage_bhmap []
 

Detailed Description

rpmverifypackage probe

Author
"Daniel Kopecek" dkope.nosp@m.cek@.nosp@m.redha.nosp@m.t.co.nosp@m.m
"Petr Lautrbach" plaut.nosp@m.rba@.nosp@m.redha.nosp@m.t.co.nosp@m.m

Macro Definition Documentation

#define COMPARE_ENT (   XXX)
Value:
if (XXX ## _ent != NULL) { \
ent = probe_entval_from_cstr( \
probe_ent_getdatatype(XXX ## _ent), res.XXX, strlen(res.XXX) \
); \
if (ent != NULL && probe_entobj_cmp(XXX ## _ent, ent) != OVAL_RESULT_TRUE) { \
SEXP_free(ent); \
continue; \
} \
SEXP_free(ent); \
}
#define RPMVERIFY_LOCK
Value:
do { \
int prev_cancel_state = -1; \
if (pthread_mutex_lock(&g_rpm.mutex) != 0) { \
dE("Can't lock mutex\n"); \
return (-1); \
} \
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &prev_cancel_state); \
} while(0)
#define RPMVERIFY_UNLOCK
Value:
do { \
int prev_cancel_state = -1; \
if (pthread_mutex_unlock(&g_rpm.mutex) != 0) { \
dE("Can't unlock mutex. Aborting...\n"); \
abort(); \
} \
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &prev_cancel_state); \
} while(0)

Variable Documentation

const rpmverifypackage_bhmap_t rpmverifypackage_bhmap[]
Initial value:
= {
{ "nodeps", (uint64_t)VERIFY_DEPS , "--nodeps"},
{ "nodigest", (uint64_t)VERIFY_DIGEST , "--nodigest"},
{ "noscripts", (uint64_t)VERIFY_SCRIPT , "--noscript"},
{ "nosignature", (uint64_t)VERIFY_SIGNATURE , "--nosignature"}
}