- python: add poptmodule.so bindings.
- fix: %dev(...) needs to map rdev and mtime from metadata.
- resurrect --specedit for i18n.
+ - fix: 4 memory leaks eliminated.
4.0 -> 4.0.[12]
- add doxygen and lclint annotations most everywhere.
if (i == fsm->li->createdPath) continue;
fsm->ix = fsm->li->filex[i];
+ fsm->path = _free(fsm->path);
rc = fsmStage(fsm, FSM_MAP);
rc = fsmStage(fsm, FSM_VERIFY);
if (!rc) continue;
fsm->li->linksLeft--;
}
+ fsm->path = _free(fsm->path);
fsm->opath = _free(fsm->opath);
fsm->ix = iterIndex;
}
} else {
out = fdDup(STDOUT_FILENO);
+#ifdef DYING
out = fdLink(out, "runScript persist");
+#endif
}
if (out == NULL) return 1; /* XXX can't happen */
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
const char *pkgname;
h = pkg->header;
- headerNVR(h, &pkgname, NULL, NULL);
+ (void) headerNVR(h, &pkgname, NULL, NULL);
if (!strcmp(pkgname, fmt))
- break;
+ /*@innerbreak@*/ break;
}
if (pkg == NULL || h == NULL)
h = spec->packages->header;
typedef /*@abstract@*/ struct _dbiIndexSet * dbiIndexSet;
/** \ingroup rpmdb
+ * Tags for which rpmdb indices will be built.
+ */
+/*@only@*/ /*@null@*/ extern int * dbiTags;
+extern int dbiTagsMax;
+
+/** \ingroup rpmdb
* Open rpm database.
* @param root path to top of install tree
* @retval dbp address of rpm database
continue;
}
+#ifdef DYING
/* Allocate file actions (and initialize to FA_UNKNOWN) */
fi->actions = xcalloc(fi->fc, sizeof(*fi->actions));
-#ifdef DYING
hdrs[i] = relocateFileList(ts, fi, fi->ap, fi->h, fi->actions);
#else
{ Header foo = relocateFileList(ts, fi, fi->ap, fi->h, fi->actions);
#define _DBI_PERMS 0644
#define _DBI_MAJOR -1
-static int dbiTagsMax = 0;
-/*@only@*/ /*@null@*/ static int *dbiTags = NULL;
+/*@globstate@*/ /*@null@*/ int * dbiTags = NULL;
+int dbiTagsMax = 0;
/**
* Return dbi index used for rpm tag.
else
recs = xrealloc(recs, (nrecs+2) * sizeof(*recs));
recs[nrecs].code = code;
- recs[nrecs].message = msg = msgbuf;
- msgbuf = NULL;
+ recs[nrecs].message = msg = xrealloc(msgbuf, strlen(msgbuf)+1);
+ msgbuf = NULL; /* XXX don't free at exit. */
recs[nrecs+1].code = 0;
recs[nrecs+1].message = NULL;
++nrecs;
-
if (_rpmlogCallback) {
_rpmlogCallback();
return; /* XXX Preserve legacy rpmError behavior. */
freeNames();
freeFilesystems();
urlFreeCache();
+ rpmlogClose();
+ dbiTags = _free(dbiTags);
#ifdef IAM_RPMQV
qva->qva_queryFormat = _free(qva->qva_queryFormat);