rpmlog(RPMLOG_DEBUG,
"%s directory created with perms %04o, no context.\n",
fsm->path, (unsigned)(st->st_mode & 07777));
- else
+ else {
rpmlog(RPMLOG_DEBUG,
"%s directory created with perms %04o, context %s.\n",
fsm->path, (unsigned)(st->st_mode & 07777),
fsm->fcontext);
+ freecon(fsm->fcontext);
+ }
fsm->fcontext = NULL;
}
*te = '/';
*/
if (!rc && !getuid()) {
rc = fsmMapFContext(fsm);
- if (!rc)
+ if (!rc) {
rc = fsmNext(fsm, FSM_LSETFCON);
+ freecon(fsm->fcontext);
+ }
fsm->fcontext = NULL;
}
if (S_ISLNK(st->st_mode)) {
const char * dirName; /*!< File directory name. */
const char * baseName; /*!< File base name. */
const char * digest; /*!< Binary checksum (NULL disables). */
- const char * fcontext; /*!< File security context (NULL disables). */
+ security_context_t fcontext;/*!< File security context (NULL disables). */
pgpHashAlgo digestalgo; /*!< File checksum algorithm */
unsigned fflags; /*!< File flags. */