rpm 5.3.12
Data Structures | Defines | Typedefs | Functions | Variables
lib/verify.c File Reference

Verify installed payload files from package metadata. More...

#include "system.h"
#include <rpmiotypes.h>
#include <rpmio.h>
#include <rpmcb.h>
#include "ugid.h"
#include <rpmtypes.h>
#include <rpmtag.h>
#include <pkgio.h>
#include <rpmfi.h>
#include "psm.h"
#include "legacy.h"
#include <rpmcli.h>
#include "debug.h"
Include dependency graph for verify.c:

Go to the source code of this file.

Data Structures

struct  rpmvf_s

Defines

#define _RPMFI_INTERNAL
#define _RPMSQ_INTERNAL
#define _RPMPS_INTERNAL
#define _RPMTS_INTERNAL
#define S_ISDEV(m)   (S_ISBLK((m)) || S_ISCHR((m)))
#define _mask   (RPMVERIFY_FDIGEST|RPMVERIFY_HMAC)
#define _verify(_RPMVERIFY_F, _C)   ((res & _RPMVERIFY_F) ? _C : aok)
#define _verifylink(_RPMVERIFY_F, _C)
#define _verifyfile(_RPMVERIFY_F, _C)

Typedefs

typedef struct rpmvf_srpmvf

Functions

static rpmvf rpmvfFree (rpmvf vf)
static rpmvf rpmvfNew (rpmts ts, rpmfi fi, int i, rpmVerifyAttrs omitMask)
static int rpmvfVerify (rpmvf vf, int spew)
 Verify file attributes (including file digest).
static int rpmVerifyScript (QVA_t qva, rpmts ts, rpmfi fi, FD_t scriptFd)
 Return exit code from running verify script from header.
static int verifyDependencies (QVA_t qva, rpmts ts, Header h)
 Check installed package dependencies for problems.
int showVerifyPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package verify.
int rpmcliVerify (rpmts ts, QVA_t qva, const char **argv)
 Verify package install.

Variables

int _rpmds_unspecified_epoch_noise

Detailed Description

Verify installed payload files from package metadata.

Definition in file verify.c.


Define Documentation

#define _mask   (RPMVERIFY_FDIGEST|RPMVERIFY_HMAC)
#define _RPMFI_INTERNAL

Definition at line 17 of file verify.c.

#define _RPMPS_INTERNAL

Definition at line 25 of file verify.c.

#define _RPMSQ_INTERNAL

Definition at line 20 of file verify.c.

#define _RPMTS_INTERNAL

Definition at line 26 of file verify.c.

#define _verify (   _RPMVERIFY_F,
  _C 
)    ((res & _RPMVERIFY_F) ? _C : aok)

Referenced by rpmvfVerify().

#define _verifyfile (   _RPMVERIFY_F,
  _C 
)
Value:
((res & RPMVERIFY_READFAIL) ? unknown : \
         (res & _RPMVERIFY_F) ? _C : aok)

Referenced by rpmvfVerify().

#define _verifylink (   _RPMVERIFY_F,
  _C 
)
Value:
((res & RPMVERIFY_READLINKFAIL) ? unknown : \
         (res & _RPMVERIFY_F) ? _C : aok)

Referenced by rpmvfVerify().

#define S_ISDEV (   m)    (S_ISBLK((m)) || S_ISCHR((m)))

Definition at line 34 of file verify.c.

Referenced by rpmvfVerify().


Typedef Documentation

typedef struct rpmvf_s* rpmvf

Definition at line 39 of file verify.c.


Function Documentation

static int rpmVerifyScript ( QVA_t  qva,
rpmts  ts,
rpmfi  fi,
FD_t  scriptFd 
) [static]

Return exit code from running verify script from header.

Todo:
malloc/free/refcount handling is fishy here.
Parameters:
qvaparsed query/verify options
tstransaction set
fifile info set
scriptFdfile handle to use for stderr (or NULL)
Returns:
0 on success

Definition at line 358 of file verify.c.

References rpmpsmFree(), rpmpsmNew(), rpmpsmScriptStage(), RPMRC_OK, and rpmtsSetScriptFd().

Referenced by showVerifyPackage().

static rpmvf rpmvfFree ( rpmvf  vf) [static]

Definition at line 59 of file verify.c.

References _free(), rpmvf_s::_item, rpmvf_s::fn, L, and rpmioItem_s::use.

Referenced by showVerifyPackage().

static rpmvf rpmvfNew ( rpmts  ts,
rpmfi  fi,
int  i,
rpmVerifyAttrs  omitMask 
) [static]
static int verifyDependencies ( QVA_t  qva,
rpmts  ts,
Header  h 
) [static]

Check installed package dependencies for problems.

Parameters:
qvaparsed query/verify options
tstransaction set
hheader
Returns:
number of problems found (0 for no problems)

Definition at line 396 of file verify.c.

References _, alloca(), headerGetInstance(), headerGetOrigin(), rpmlog(), RPMLOG_NOTICE, rpmProblemGetAltNEVR(), rpmProblemGetPkgNEVR(), rpmpsFree(), rpmpsFreeIterator(), rpmpsInitIterator(), rpmpsNextIterator(), rpmpsNumProblems(), rpmpsProblem(), rpmtsAddEraseElement(), rpmtsAddInstallElement(), rpmtsCheck, rpmtsEmpty(), rpmtsProblems(), and stpcpy().

Referenced by showVerifyPackage().


Variable Documentation

Definition at line 122 of file rpmds.c.

Referenced by showVerifyPackage().