# lib/rpmsx.h File Reference

Structure(s) used for file security context pattern handling. More...

`#include <regex.h>`

Include dependency graph for rpmsx.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Defines
#define | rpmsxUnlink(_sx, _msg) XrpmsxUnlink(_sx, _msg, __FILE__, __LINE__)
#define | rpmsxLink(_sx, _msg) XrpmsxLink(_sx, _msg, __FILE__, __LINE__)
## Typedefs
typedef struct rpmsx_s * | rpmsx
typedef struct rpmsxp_s * | rpmsxp
typedef struct rpmsxs_s * | rpmsxs
## Functions
rpmsx | rpmsxUnlink (rpmsx sx, const char *msg)
| Unreference a security context patterns instance.
rpmsx | XrpmsxUnlink (rpmsx sx, const char *msg, const char *fn, unsigned ln)
rpmsx | rpmsxLink (rpmsx sx, const char *msg)
| Reference a security context patterns instance.
rpmsx | XrpmsxLink (rpmsx sx, const char *msg, const char *fn, unsigned ln)
rpmsx | rpmsxFree (rpmsx sx)
| Destroy a security context patterns.
int | rpmsxParse (rpmsx sx, const char *fn)
| Parse selinux file security context patterns.
rpmsx | rpmsxNew (const char *fn)
| Create and load security context patterns.
int | rpmsxCount (const rpmsx sx)
| Return security context patterns count.
int | rpmsxIx (const rpmsx sx)
| Return security context patterns index.
int | rpmsxSetIx (rpmsx sx, int ix)
| Set security context patterns index.
const char * | rpmsxPattern (const rpmsx sx)
| Return current pattern.
const char * | rpmsxType (const rpmsx sx)
| Return current type.
const char * | rpmsxContext (const rpmsx sx)
| Return current context.
regex_t * | rpmsxRE (const rpmsx sx)
| Return current regex.
mode_t | rpmsxFMode (const rpmsx sx)
| Return current file mode.
int | rpmsxFStem (const rpmsx sx)
| Return current file stem.
int | rpmsxNext (rpmsx sx)
| Return next security context patterns iterator index.
rpmsx | rpmsxInit (rpmsx sx, int reverse)
| Initialize security context patterns iterator.
const char * | rpmsxFContext (rpmsx sx, const char *fn, mode_t fmode)
| Find file security context from path and type.
## Variables
int | _rpmsx_debug
int | _rpmsx_nopromote

## Detailed Description

Structure(s) used for file security context pattern handling.

Definition in file rpmsx.h.

## Define Documentation

#define rpmsxLink | ( | _sx,
|  | _msg |  | ) | XrpmsxLink(_sx, _msg, __FILE__, __LINE__)

Definition at line 120 of file rpmsx.h.

Referenced by rpmsxNew(), rpmtsREContext(), and rpmtsSetREContext().

#define rpmsxUnlink | ( | _sx,
|  | _msg |  | ) | XrpmsxUnlink(_sx, _msg, __FILE__, __LINE__)

Definition at line 101 of file rpmsx.h.

Referenced by rpmsxFree().

## Typedef Documentation

typedef struct rpmsx_s* rpmsx

Definition at line 29 of file rpmsx.h.

typedef struct rpmsxp_s* rpmsxp

Definition at line 30 of file rpmsx.h.

typedef struct rpmsxs_s* rpmsxs

Definition at line 31 of file rpmsx.h.

## Function Documentation

const char* rpmsxContext | ( | const rpmsx | sx | ) |

Return current context.

Parameters:

  | sx | security context patterns

Returns:
  current context, NULL on invalid

Definition at line 571 of file rpmsx.c.

Referenced by rpmsxFContext().

int rpmsxCount | ( | const rpmsx | sx | ) |

Return security context patterns count.

Parameters:

  | sx | security context patterns

Returns:
  current count

Definition at line 532 of file rpmsx.c.

const char* rpmsxFContext | ( | rpmsx | sx,
|  | const char * | fn,
|  | mode_t | fmode |
| ) |  |  |

Find file security context from path and type.

Parameters:

  | sx | security context patterns
  | fn | file path
  | fmode | file mode

Returns:
  file security context

Definition at line 651 of file rpmsx.c.

References rpmsxContext(), rpmsxFind(), rpmsxFMode(), rpmsxFStem(), rpmsxInit(), rpmsxNext(), rpmsxPattern(), and rpmsxRE().

Referenced by fsmMkdirs().

mode_t rpmsxFMode | ( | const rpmsx | sx | ) |

Return current file mode.

Parameters:

  | sx | security context patterns

Returns:
  current file mode, 0 on invalid

Definition at line 589 of file rpmsx.c.

Referenced by rpmsxFContext().

rpmsx rpmsxFree | ( | rpmsx | sx | ) |

Destroy a security context patterns.

Parameters:

  | sx | security context patterns

Returns:
  NULL always

Definition at line 227 of file rpmsx.c.

References _free(), _rpmsx_debug, and rpmsxUnlink.

Referenced by fsmMkdirs(), rpmsxNew(), rpmtsFree(), and rpmtsSetREContext().

int rpmsxFStem | ( | const rpmsx | sx | ) |

Return current file stem.

Parameters:

  | sx | security context patterns

Returns:
  current file stem, -1 on invalid

Definition at line 598 of file rpmsx.c.

Referenced by rpmsxFContext().

rpmsx rpmsxInit | ( | rpmsx | sx,
|  | int | reverse |
| ) |  |  |

Initialize security context patterns iterator.

Parameters:

  | sx | security context patterns
  | reverse | iterate in reverse order?

Returns:
  security context patterns

Definition at line 639 of file rpmsx.c.

Referenced by rpmsxFContext().

int rpmsxIx | ( | const rpmsx | sx | ) |

Return security context patterns index.

Parameters:

  | sx | security context patterns

Returns:
  current index

Definition at line 537 of file rpmsx.c.

rpmsx rpmsxLink | ( | rpmsx | sx,
|  | const char * | msg |
| ) |  |  |

Reference a security context patterns instance.

Parameters:

  | sx | security context patterns
  | msg |

Returns:
  new security context patterns reference

rpmsx rpmsxNew | ( | const char * | fn | ) |

Create and load security context patterns.

Parameters:

  | fn | security context patterns file name

Returns:
  new security context patterns

Definition at line 511 of file rpmsx.c.

References rpmsxFree(), rpmsxLink, rpmsxParse(), and xcalloc().

int rpmsxNext | ( | rpmsx | sx | ) |

Return next security context patterns iterator index.

Parameters:

  | sx | security context patterns

Returns:
  security context patterns iterator index, -1 on termination

Definition at line 607 of file rpmsx.c.

References _rpmsx_debug.

Referenced by rpmsxFContext().

int rpmsxParse | ( | rpmsx | sx,
|  | const char * | fn |
| ) |  |  |

Parse selinux file security context patterns.

Parameters:

  | sx | security context patterns
  | fn | file name to parse

Returns:
  0 on success

Definition at line 316 of file rpmsx.c.

References _, _free(), errno, inc_err, rpmGetPath(), rpmsxAdd(), rpmsxpCheckNoDupes(), rpmsxpHasMetaChars(), rpmsxSort(), S_IFSOCK, security_check_context, xcalloc(), and xmalloc().

Referenced by rpmsxNew().

const char* rpmsxPattern | ( | const rpmsx | sx | ) |

Return current pattern.

Parameters:

  | sx | security context patterns

Returns:
  current pattern, NULL on invalid

Definition at line 553 of file rpmsx.c.

Referenced by rpmsxFContext().

regex_t* rpmsxRE | ( | const rpmsx | sx | ) |

Return current regex.

Parameters:

  | sx | security context patterns

Returns:
  current context, NULL on invalid

Definition at line 580 of file rpmsx.c.

Referenced by rpmsxFContext().

int rpmsxSetIx | ( | rpmsx | sx,
|  | int | ix |
| ) |  |  |

Set security context patterns index.

Parameters:

  | sx | security context patterns
  | ix | new index

Returns:
  current index

Definition at line 542 of file rpmsx.c.

const char* rpmsxType | ( | const rpmsx | sx | ) |

Return current type.

Parameters:

  | sx | security context patterns

Returns:
  current type, NULL on invalid/missing

Definition at line 562 of file rpmsx.c.

rpmsx rpmsxUnlink | ( | rpmsx | sx,
|  | const char * | msg |
| ) |  |  |

Unreference a security context patterns instance.

Parameters:

  | sx | security context patterns
  | msg |

Returns:
  NULL always

rpmsx XrpmsxLink | ( | rpmsx | sx,
|  | const char * | msg,
|  | const char * | fn,
|  | unsigned | ln |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Definition at line 214 of file rpmsx.c.

References _rpmsx_debug.

rpmsx XrpmsxUnlink | ( | rpmsx | sx,
|  | const char * | msg,
|  | const char * | fn,
|  | unsigned | ln |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Definition at line 203 of file rpmsx.c.

References _rpmsx_debug.

## Variable Documentation

int _rpmsx_debug

Definition at line 18 of file rpmsx.c.

int _rpmsx_nopromote