/* Save the non-skipped file name and map index. */
fsm->li->linkIndex = j;
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->ix = ix;
rc = fsmNext(fsm, FSM_MAP);
return rc;
FSM_t freeFSM(FSM_t fsm)
{
if (fsm) {
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
while ((fsm->li = fsm->links) != NULL) {
fsm->links = fsm->li->next;
fsm->li->next = NULL;
if ((fsm->mapFlags & CPIO_MAP_PATH) || fsm->nsuffix) {
const struct stat * st = &fsm->sb;
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->path = fsmFsPath(fsm, st, fsm->subdir,
(fsm->suffix ? fsm->suffix : fsm->nsuffix));
}
*/
static int writeFile(FSM_t fsm, int writeData)
{
- const char * path = fsm->path;
- const char * opath = fsm->opath;
+ char * path = fsm->path;
+ char * opath = fsm->opath;
struct stat * st = &fsm->sb;
struct stat * ost = &fsm->osb;
char * symbuf = NULL;
char *p = NULL;
if (fsm->mapFlags & CPIO_MAP_ADDDOT)
rstrcat(&p, ".");
- rstrscat(&p, fsm->dirName, fsm->baseName, NULL);
+ rstrscat(&fsm->path, fsm->dirName, fsm->baseName, NULL);
fsm->path = p;
} else if (fsm->mapFlags & CPIO_MAP_PATH) {
rpmfi fi = fsmGetFi(fsm);
}
rc = fsmNext(fsm, FSM_HWRITE);
- _constfree(fsm->path);
+ _free(fsm->path);
fsm->path = path;
if (rc) goto exit;
*/
static int writeLinkedFile(FSM_t fsm)
{
- const char * path = fsm->path;
+ char * path = fsm->path;
const char * nsuffix = fsm->nsuffix;
int iterIndex = fsm->ix;
int ec = 0;
*fsm->failedFile = xstrdup(fsm->path);
}
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->li->filex[i] = -1;
}
*/
static int fsmMakeLinks(FSM_t fsm)
{
- const char * path = fsm->path;
- const char * opath = fsm->opath;
+ char * path = fsm->path;
+ char * opath = fsm->opath;
const char * nsuffix = fsm->nsuffix;
int iterIndex = fsm->ix;
int ec = 0;
if (fsm->li->createdPath == i) continue;
fsm->ix = fsm->li->filex[i];
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
rc = fsmNext(fsm, FSM_MAP);
if (XFA_SKIPPING(fsm->action)) continue;
fsm->li->linksLeft--;
}
- fsm->path = _constfree(fsm->path);
- fsm->opath = _constfree(fsm->opath);
+ fsm->path = _free(fsm->path);
+ fsm->opath = _free(fsm->opath);
fsm->ix = iterIndex;
fsm->nsuffix = nsuffix;
*/
static int fsmCommitLinks(FSM_t fsm)
{
- const char * path = fsm->path;
+ char * path = fsm->path;
const char * nsuffix = fsm->nsuffix;
int iterIndex = fsm->ix;
struct stat * st = &fsm->sb;
rc = fsmNext(fsm, FSM_MAP);
if (!XFA_SKIPPING(fsm->action))
rc = fsmNext(fsm, FSM_COMMIT);
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->li->filex[i] = -1;
}
*/
static int fsmRmdirs(FSM_t fsm)
{
- const char * path = fsm->path;
+ char * path = fsm->path;
void * dnli = dnlInitIterator(fsm, 1);
char * dn = fsm->rdbuf;
int dc = dnlCount(dnli);
{
struct stat * st = &fsm->sb;
struct stat * ost = &fsm->osb;
- const char * path = fsm->path;
+ char * path = fsm->path;
mode_t st_mode = st->st_mode;
void * dnli = dnlInitIterator(fsm, 0);
char * dn = fsm->rdbuf;
fsm->goal != FSM_PKGCOMMIT) ? 0 : 1);
#undef _tsmask
}
- fsm->path = _constfree(fsm->path);
- fsm->opath = _constfree(fsm->opath);
+ fsm->path = _free(fsm->path);
+ fsm->opath = _free(fsm->opath);
fsm->dnlx = _free(fsm->dnlx);
fsm->ldn = _free(fsm->ldn);
break;
case FSM_INIT:
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->postpone = 0;
fsm->diskchecked = fsm->exists = 0;
fsm->subdir = NULL;
break;
if (S_ISREG(st->st_mode)) {
- const char * path = fsm->path;
+ char * path = fsm->path;
if (fsm->osuffix)
fsm->path = fsmFsPath(fsm, st, NULL, NULL);
rc = fsmUNSAFE(fsm, FSM_VERIFY);
if (rc == 0 && fsm->osuffix) {
- const char * opath = fsm->opath;
+ char * opath = fsm->opath;
fsm->opath = fsm->path;
fsm->path = fsmFsPath(fsm, st, NULL, fsm->osuffix);
rc = fsmNext(fsm, FSM_RENAME);
_("%s saved as %s\n"),
(fsm->opath ? fsm->opath : ""),
(fsm->path ? fsm->path : ""));
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->opath = opath;
}
st->st_mode = st_mode; /* XXX restore st->st_mode */
}
} else if (S_ISLNK(st->st_mode)) {
- const char * opath = fsm->opath;
+ char * opath = fsm->opath;
if ((st->st_size + 1) > fsm->rdsize) {
rc = CPIOERR_HDR_SIZE;
if (fsm->goal == FSM_PKGERASE)
rc = fsmNext(fsm, FSM_COMMIT);
}
- fsm->path = _constfree(fsm->path);
- fsm->opath = _constfree(fsm->opath);
+ fsm->path = _free(fsm->path);
+ fsm->opath = _free(fsm->opath);
memset(st, 0, sizeof(*st));
memset(ost, 0, sizeof(*ost));
break;
if (fsm->osuffix && fsm->diskchecked &&
(fsm->exists || (fsm->goal == FSM_PKGINSTALL && S_ISREG(st->st_mode))))
{
- const char * opath = fsm->opath;
- const char * path = fsm->path;
+ char * opath = fsm->opath;
+ char * path = fsm->path;
fsm->opath = fsmFsPath(fsm, st, NULL, NULL);
fsm->path = fsmFsPath(fsm, st, NULL, fsm->osuffix);
rc = fsmNext(fsm, FSM_RENAME);
(fsm->opath ? fsm->opath : ""),
(fsm->path ? fsm->path : ""));
}
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
fsm->path = path;
- fsm->opath = _constfree(fsm->opath);
+ fsm->opath = _free(fsm->opath);
fsm->opath = opath;
}
(fsm->path ? fsm->path : ""));
opath = _free(opath);
}
- fsm->opath = _constfree(fsm->opath);
+ fsm->opath = _free(fsm->opath);
}
/*
* Set file security context (if not disabled).
/* Notify on success. */
if (!rc) rc = fsmNext(fsm, FSM_NOTIFY);
else if (fsm->failedFile && *fsm->failedFile == NULL) {
- /* XXX ick, stripping const */
- *fsm->failedFile = (char *) fsm->path;
+ *fsm->failedFile = fsm->path;
fsm->path = NULL;
}
break;
case FSM_DESTROY:
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
/* Check for hard links missing from payload. */
while ((fsm->li = fsm->links) != NULL) {
if (fsm->failedFile && *fsm->failedFile == NULL) {
fsm->ix = fsm->li->filex[i];
if (!fsmNext(fsm, FSM_MAP)) {
- /*
- * XXX ick, stripping const. Out-of-sync
- * hardlinks handled as sub-state, see
- * changeset 4062:02b0c237b675
- */
- *fsm->failedFile = (char *) fsm->path;
+ /* Out-of-sync hardlinks handled as sub-state */
+ *fsm->failedFile = fsm->path;
fsm->path = NULL;
}
}
(void) fsmNext(fsm, FSM_UNLINK);
else
rc = CPIOERR_UNLINK_FAILED;
- _constfree(fsm->path);
+ _free(fsm->path);
fsm->path = fsm->opath;
fsm->opath = NULL;
return (rc ? rc : CPIOERR_ENOENT); /* XXX HACK */
rc = fsmUNSAFE(fsm, FSM_HREAD);
if (rc) break;
if (rstreq(fsm->path, CPIO_TRAILER)) { /* Detect end-of-payload. */
- fsm->path = _constfree(fsm->path);
+ fsm->path = _free(fsm->path);
rc = CPIOERR_HDR_TRAILER;
}
if (!rc)