rpm  4.5
Macros | Functions
legacy.c File Reference
#include "system.h"
#include "rpmio_internal.h"
#include <rpmlib.h>
#include <rpmmacro.h>
#include "misc.h"
#include "legacy.h"
#include "debug.h"
Include dependency graph for legacy.c:

Go to the source code of this file.

Macros

#define alloca_strdup(_s)   strcpy(alloca(strlen(_s)+1), (_s))
 

Functions

static int open_dso (const char *path, pid_t *pidp, size_t *fsizep)
 Open a file descriptor to verify file MD5 and size.
 
int dodigest (int digestalgo, const char *fn, unsigned char *digest, int asAscii, size_t *fsizep)
 Return digest and size of a file.
 
int domd5 (const char *fn, unsigned char *digest, int asAscii, size_t *fsizep)
 Return MD5 digest and size of a file.
 
void rpmfiBuildFNames (Header h, rpmTag tagN, const char ***fnp, int *fcp)
 Retrieve file names from header.
 

Macro Definition Documentation

#define alloca_strdup (   _s)    strcpy(alloca(strlen(_s)+1), (_s))

Definition at line 35 of file legacy.c.

Function Documentation

int dodigest ( int  digestalgo,
const char *  fn,
unsigned char *  digest,
int  asAscii,
size_t *  fsizep 
)

Return digest and size of a file.

Parameters
digestalgodigest algorithm to use
fnfile name
Return values
digestaddress of md5sum
Parameters
asAsciireturn md5sum as ascii string?
Return values
*fsizepfile size pointer (or NULL)
Returns
0 on success, 1 on error

Definition at line 156 of file legacy.c.

References _free(), Fclose(), fdDup(), fdFiniDigest(), fdInitDigest(), Ferror(), Fopen(), Fread(), open_dso(), RPMDIGEST_NONE, rpmDigestFinal(), rpmDigestInit(), rpmDigestUpdate(), URL_IS_DASH, URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by domd5(), genCpioListAndHeader(), handleOverlappedFiles(), rpmAddSignature(), rpmfiDecideFate(), and rpmVerifyFile().

int domd5 ( const char *  fn,
unsigned char *  digest,
int  asAscii,
size_t *  fsizep 
)

Return MD5 digest and size of a file.

Parameters
fnfile name
Return values
digestaddress of md5sum
Parameters
asAsciireturn md5sum as ascii string?
Return values
*fsizepfile size pointer (or NULL)
Returns
0 on success, 1 on error

Definition at line 261 of file legacy.c.

References dodigest(), and PGPHASHALGO_MD5.

static int open_dso ( const char *  path,
pid_t *  pidp,
size_t *  fsizep 
)
static

Open a file descriptor to verify file MD5 and size.

Parameters
pathfile path
Return values
pidpprelink helper pid or 0
fsizepfile size
Returns
-1 on error, otherwise, an open file descriptor

Definition at line 44 of file legacy.c.

References rpmExpand(), and unsetenv().

Referenced by dodigest().

void rpmfiBuildFNames ( Header  h,
rpmTag  tagN,
const char ***  fnp,
int *  fcp 
)

Retrieve file names from header.

The representation of file names in package headers changed in rpm-4.0. Originally, file names were stored as an array of absolute paths. In rpm-4.0, file names are stored as separate arrays of dirname's and basename's, * with a dirname index to associate the correct dirname with each basname.

This function is used to retrieve file names independent of how the file names are represented in the package header.

Parameters
hheader
tagNRPMTAG_BASENAMES | PMTAG_ORIGBASENAMES
Return values
*fnparray of file names
*fcpnumber of files

Definition at line 266 of file legacy.c.

References _free(), headerFreeData(), headerGetEntryMinMemory(), RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_ORIGBASENAMES, RPMTAG_ORIGDIRINDEXES, RPMTAG_ORIGDIRNAMES, stpcpy(), urlPath(), and xmalloc().

Referenced by _fnTag(), expandFilelist(), fssizesTag(), mungeFilelist(), rpmHeaderGetEntry(), rpmInstallSourcePackage(), and rpmpsmStage().