#include "system.h"
#include <rpmio_internal.h>
#include <rpmlib.h>
#include "cpio.h"
#include "fsm.h"
#include "rpmerr.h"
#include "debug.h"
Go to the source code of this file.
Defines | |
| #define | GET_NUM_FIELD(phys, log) |
| #define | SET_NUM_FIELD(phys, val, space) |
Functions | |
| static int | strntoul (const char *str, char **endptr, int base, int num) |
| Convert string to unsigned integer (with buffer size check). | |
| int | cpioTrailerWrite (FSM_t fsm) |
| Write cpio trailer. | |
| int | cpioHeaderWrite (FSM_t fsm, struct stat *st) |
| Write cpio header. | |
| int | cpioHeaderRead (FSM_t fsm, struct stat *st) |
| Read cpio header. | |
| const char *const | cpioStrerror (int rc) |
| Return formatted error message on payload handling failure. | |
Definition in file cpio.c.
| #define GET_NUM_FIELD | ( | phys, | |||
| log | ) |
Value:
/*@-boundswrite@*/ \ log = strntoul(phys, &end, 16, sizeof(phys)); \ /*@=boundswrite@*/ \ if ( (end - phys) != sizeof(phys) ) return CPIOERR_BAD_HEADER;
Definition at line 53 of file cpio.c.
Referenced by cpioHeaderRead().
| #define SET_NUM_FIELD | ( | phys, | |||
| val, | |||||
| space | ) |
Value:
sprintf(space, "%8.8lx", (unsigned long) (val)); \ /*@-boundsread@*/ \ memcpy(phys, space, 8) \
Definition at line 58 of file cpio.c.
Referenced by cpioHeaderWrite().
| int cpioHeaderRead | ( | FSM_t | fsm, | |
| struct stat * | st | |||
| ) |
Read cpio header.
| fsm | file path and stat info | |
| st |
Definition at line 130 of file cpio.c.
References _free(), CPIO_CRC_MAGIC, CPIO_NEWC_MAGIC, CPIOERR_BAD_HEADER, CPIOERR_BAD_MAGIC, CPIOERR_READ_FAILED, cpioCrcPhysicalHeader::devMajor, cpioCrcPhysicalHeader::devMinor, cpioCrcPhysicalHeader::filesize, FSM_DREAD, fsmNext(), GET_NUM_FIELD, cpioCrcPhysicalHeader::gid, cpioCrcPhysicalHeader::inode, cpioCrcPhysicalHeader::magic, major, makedev, minor, cpioCrcPhysicalHeader::mode, cpioCrcPhysicalHeader::mtime, cpioCrcPhysicalHeader::namesize, cpioCrcPhysicalHeader::nlink, fsm_s::path, PHYS_HDR_SIZE, cpioCrcPhysicalHeader::rdevMajor, cpioCrcPhysicalHeader::rdevMinor, fsm_s::rdnb, cpioCrcPhysicalHeader::uid, fsm_s::wrbuf, fsm_s::wrlen, fsm_s::wrsize, and xmalloc().
| int cpioHeaderWrite | ( | FSM_t | fsm, | |
| struct stat * | st | |||
| ) |
Write cpio header.
| fsm | file path and stat info |
| st |
Definition at line 92 of file cpio.c.
References cpioCrcPhysicalHeader::checksum, CPIO_NEWC_MAGIC, CPIOERR_WRITE_FAILED, cpioCrcPhysicalHeader::devMajor, cpioCrcPhysicalHeader::devMinor, cpioCrcPhysicalHeader::filesize, FSM_DWRITE, FSM_PAD, fsmNext(), cpioCrcPhysicalHeader::gid, cpioCrcPhysicalHeader::inode, cpioCrcPhysicalHeader::magic, major, minor, cpioCrcPhysicalHeader::mode, cpioCrcPhysicalHeader::mtime, cpioCrcPhysicalHeader::namesize, cpioCrcPhysicalHeader::nlink, fsm_s::path, PHYS_HDR_SIZE, fsm_s::rdbuf, cpioCrcPhysicalHeader::rdevMajor, cpioCrcPhysicalHeader::rdevMinor, fsm_s::rdnb, SET_NUM_FIELD, cpioCrcPhysicalHeader::uid, and fsm_s::wrnb.
| int cpioTrailerWrite | ( | FSM_t | fsm | ) |
Write cpio trailer.
| fsm | file path and stat info |
Definition at line 64 of file cpio.c.
References CPIO_NEWC_MAGIC, CPIO_TRAILER, FSM_DWRITE, FSM_PAD, fsmNext(), PHYS_HDR_SIZE, fsm_s::rdbuf, and fsm_s::rdnb.
| static int strntoul | ( | const char * | str, | |
| char ** | endptr, | |||
| int | base, | |||
| int | num | |||
| ) | [static] |
1.5.2