Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

lib/verify.c File Reference

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

#include "system.h"
#include "psm.h"
#include "rpmcli.h"
#include "ugid.h"
#include "misc.h"
#include "debug.h"

Go to the source code of this file.

Defines

#define S_ISDEV(m)   (S_ISBLK((m)) || S_ISCHR((m)))
#define _verify(_RPMVERIFY_F, _C)   ((verifyResult & _RPMVERIFY_F) ? _C : aok)
#define _verifylink(_RPMVERIFY_F, _C)
#define _verifyfile(_RPMVERIFY_F, _C)

Functions

int rpmVerifyFile (const char *root, Header h, int filenum, rpmVerifyAttrs *result, rpmVerifyAttrs omitMask)
int rpmVerifyScript (const char *rootDir, Header h, FD_t scriptFd)
 Return exit code from running verify script from header.

int rpmVerifyDigest (Header h)
 Check original header digest.

int verifyHeader (QVA_t qva, Header h)
 Check file info from header against what's actually installed.

int verifyDependencies (rpmdb rpmdb, Header h)
 Check installed package dependencies for problems.

int showVerifyPackage (QVA_t qva, rpmdb rpmdb, Header h)
int rpmVerify (QVA_t qva, rpmQVSources source, const char *arg)


Detailed Description

Verify installed payload files from package metadata.

Definition in file verify.c.


Define Documentation

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

#define _verifyfile _RPMVERIFY_F,
_C   
 

Value:

((verifyResult & RPMVERIFY_READFAIL) ? unknown : \
         (verifyResult & _RPMVERIFY_F) ? _C : aok)

#define _verifylink _RPMVERIFY_F,
_C   
 

Value:

((verifyResult & RPMVERIFY_READLINKFAIL) ? unknown : \
         (verifyResult & _RPMVERIFY_F) ? _C : aok)

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

Definition at line 20 of file verify.c.

Referenced by rpmVerifyFile().


Function Documentation

int rpmVerify QVA_t    qva,
rpmQVSources    source,
const char *    arg
 

Verify package install.

Parameters:
qva  parsed query/verify options
source  type of source to verify
arg  name of source to verify
Returns:
rpmQueryVerify() result, or 1 on rpmdbOpen() failure

Definition at line 551 of file verify.c.

References rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_prefix, rpmdbClose(), rpmdbOpen(), rpmQueryVerify(), RPMQV_RPM, rpmQVSources, showVerifyPackage(), and VERIFY_DEPS.

Referenced by main().

int rpmVerifyDigest Header    h
 

Check original header digest.

Todo:
Make digest check part of rpmdb iterator.
Parameters:
h  header
Returns:
0 on success (or unavailable), 1 on digest mismatch

Definition at line 305 of file verify.c.

References _free(), HFD_t, HGE_t, int_32, PGPHASHALGO_SHA1, RPMDIGEST_NONE, rpmDigestFinal(), rpmDigestInit(), rpmDigestUpdate(), RPMTAG_HEADERIMMUTABLE, RPMTAG_SHA1RHN, and rpmTagType.

Referenced by showVerifyPackage().

int rpmVerifyFile const char *    root,
Header    h,
int    filenum,
rpmVerifyAttrs   result,
rpmVerifyAttrs    omitMask
 

Verify file attributes (including MD5 sum).

Todo:
gnorpm and python bindings prevent this from being static.
Parameters:
root  path to top of install tree
h  header
filenum  index of file in header file info arrays
Return values:
result  address of bit(s) returned to indicate failure
Parameters:
omitMask  bit(s) to disable verify checks
Returns:
0 on success (or not installed), 1 on error

Definition at line 22 of file verify.c.

References _, alloca(), domd5(), gnameToGid(), HFD_t, HGE_t, int_32, Lstat(), Readlink(), RPMERR_INTERNAL, rpmError, RPMFILE_GHOST, RPMFILE_NONE, RPMFILE_STATE_NETSHARED, RPMFILE_STATE_NORMAL, RPMFILE_STATE_NOTINSTALLED, RPMFILE_STATE_REPLACED, rpmfileAttrs, rpmfileState, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEFLAGS, RPMTAG_FILEGIDS, RPMTAG_FILEGROUPNAME, RPMTAG_FILELINKTOS, RPMTAG_FILEMD5S, RPMTAG_FILEMODES, RPMTAG_FILEMTIMES, RPMTAG_FILERDEVS, RPMTAG_FILESIZES, RPMTAG_FILESTATES, RPMTAG_FILEUIDS, RPMTAG_FILEUSERNAME, RPMTAG_FILEVERIFYFLAGS, rpmTagType, RPMVERIFY_ALL, RPMVERIFY_FILESIZE, RPMVERIFY_GROUP, RPMVERIFY_LINKTO, RPMVERIFY_LSTATFAIL, RPMVERIFY_MD5, RPMVERIFY_MODE, RPMVERIFY_MTIME, RPMVERIFY_NONE, RPMVERIFY_RDEV, RPMVERIFY_READFAIL, RPMVERIFY_READLINKFAIL, RPMVERIFY_USER, rpmVerifyAttrs, S_ISDEV, S_ISLNK, stpcpy(), and uidToUname().

Referenced by verifyHeader().

int rpmVerifyScript const char *    rootDir,
Header    h,
FD_t    scriptFd
 

Return exit code from running verify script from header.

Todo:
gnorpm/kpackage prevents static, should be using VERIFY_SCRIPT flag.
Parameters:
rootDir  path to top of install tree
h  header
scriptFd  file handle to use for stderr (or NULL)
Returns:
0 on success

Definition at line 279 of file verify.c.

References _free(), fdLink, freeFi(), loadFi(), transactionFileInfo_s::magic, PSM_SCRIPT, psmStage(), RPMTAG_VERIFYSCRIPT, RPMTAG_VERIFYSCRIPTPROG, rpmtransCreateSet(), rpmtransFree(), rpmTransactionSet_s::scriptFd, TFIMAGIC, and xcalloc().

Referenced by showVerifyPackage().

int showVerifyPackage QVA_t    qva,
rpmdb    db,
Header    h
 

Display results of package verify.

Parameters:
qva  parsed query/verify options
db  rpm database
h  header to use for verify
Returns:
result of last non-zero verify return

Definition at line 517 of file verify.c.

References _, Fclose(), fdDup(), headerNVR(), rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_prefix, RPMMESS_NORMAL, rpmMessage, rpmVerifyDigest(), rpmVerifyScript(), VERIFY_DEPS, VERIFY_DIGEST, VERIFY_FILES, VERIFY_SCRIPT, verifyDependencies(), and verifyHeader().

Referenced by rpmVerify().

int verifyDependencies rpmdb    rpmdb,
Header    h
[static]
 

Check installed package dependencies for problems.

Parameters:
rpmdb  rpm database
h  header
Returns:
0 no problems, 1 problems found

Definition at line 459 of file verify.c.

References _, alloca(), headerNVR(), rpmDependencyConflict_s::needsFlags, rpmdepCheck(), rpmdepFreeConflicts(), RPMMESS_NORMAL, rpmMessage, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, rpmtransAddPackage(), rpmtransCreateSet(), rpmtransFree(), and stpcpy().

Referenced by showVerifyPackage().

int verifyHeader QVA_t    qva,
Header    h
[static]
 

Check file info from header against what's actually installed.

Parameters:
qva  parsed query/verify options
h  header
Returns:
0 no problems, 1 problems found

Definition at line 352 of file verify.c.

References _, _free(), headerIsEntry(), HGE_t, int_32, rpmQVArguments_s::qva_fflags, rpmQVArguments_s::qva_flags, rpmQVArguments_s::qva_prefix, rpmBuildFileList(), RPMFILE_CONFIG, RPMFILE_DOC, RPMFILE_GHOST, RPMFILE_LICENSE, RPMFILE_MISSINGOK, RPMFILE_README, rpmfileAttrs, rpmIsVerbose, RPMMESS_NORMAL, rpmMessage, RPMTAG_BASENAMES, RPMTAG_FILEFLAGS, RPMVERIFY_FILESIZE, RPMVERIFY_GROUP, RPMVERIFY_LINKTO, RPMVERIFY_MD5, RPMVERIFY_MODE, RPMVERIFY_MTIME, RPMVERIFY_RDEV, RPMVERIFY_USER, rpmVerifyAttrs, rpmVerifyFile(), and VERIFY_ATTRS.

Referenced by showVerifyPackage().


Generated on Sun Feb 2 23:32:10 2003 for rpm by doxygen1.2.18