diff options
-rw-r--r-- | lib/rpmps.c | 2 | ||||
-rw-r--r-- | lib/rpmps.h | 2 | ||||
-rw-r--r-- | lib/verify.c | 4 | ||||
-rw-r--r-- | python/rpmps-py.c | 8 | ||||
-rw-r--r-- | python/rpmts-py.c | 4 |
5 files changed, 14 insertions, 6 deletions
diff --git a/lib/rpmps.c b/lib/rpmps.c index bb78e51db..68f740542 100644 --- a/lib/rpmps.c +++ b/lib/rpmps.c @@ -296,7 +296,7 @@ unsigned long rpmProblemGetLong(const rpmProblem p) return (p->ulong1); } -const char * rpmProblemString(const rpmProblem prob) +char * rpmProblemString(const rpmProblem prob) { const char * pkgNEVR = (prob->pkgNEVR ? prob->pkgNEVR : "?pkgNEVR?"); const char * altNEVR = (prob->altNEVR ? prob->altNEVR : "? ?altNEVR?"); diff --git a/lib/rpmps.h b/lib/rpmps.h index 699abd9c5..1d53d585a 100644 --- a/lib/rpmps.h +++ b/lib/rpmps.h @@ -132,7 +132,7 @@ unsigned long rpmProblemGetLong(const rpmProblem prob); * @param prob rpm problem * @return formatted string (malloc'd) */ -extern const char * rpmProblemString(const rpmProblem prob); +extern char * rpmProblemString(const rpmProblem prob); /** \ingroup rpmps * Unreference a problem set instance. diff --git a/lib/verify.c b/lib/verify.c index bb3361563..df01858b3 100644 --- a/lib/verify.c +++ b/lib/verify.c @@ -371,7 +371,9 @@ static int verifyDependencies(QVA_t qva, rpmts ts, free(nevra); while (rpmpsNextIterator(psi) >= 0) { rpmProblem p = rpmpsGetProblem(psi); - rpmlog(RPMLOG_NOTICE, "\t%s\n", rpmProblemString(p)); + char * ps = rpmProblemString(p); + rpmlog(RPMLOG_NOTICE, "\t%s\n", ps); + free(ps); rc++; } } diff --git a/python/rpmps-py.c b/python/rpmps-py.c index df20140d9..4a592369c 100644 --- a/python/rpmps-py.c +++ b/python/rpmps-py.c @@ -68,7 +68,9 @@ fprintf(stderr, "*** rpmps_iternext(%p) ps %p psi %p\n", s, s->ps, s->psi); /* If more to do, return a problem set string. */ if (rpmpsNextIterator(s->psi) >= 0) { - result = Py_BuildValue("s", rpmProblemString(rpmpsGetProblem(s->psi))); + char * ps = rpmProblemString(rpmpsGetProblem(s->psi)); + result = Py_BuildValue("s", ps); + free(ps); } else { s->psi = rpmpsFreeIterator(s->psi); } @@ -148,7 +150,9 @@ rpmps_subscript(rpmpsObject * s, PyObject * key) psi = rpmpsInitIterator(s->ps); while ((i = rpmpsNextIterator(psi)) >= 0) { if (i == ix) { - result = Py_BuildValue("s", rpmProblemString(rpmpsGetProblem(psi))); + char * ps = rpmProblemString(rpmpsGetProblem(psi)); + result = Py_BuildValue("s", ps); + free(ps); break; } } diff --git a/python/rpmts-py.c b/python/rpmts-py.c index 8cb964055..b60ef8f40 100644 --- a/python/rpmts-py.c +++ b/python/rpmts-py.c @@ -1139,11 +1139,13 @@ fprintf(stderr, "*** rpmts_Run(%p) ts %p ignore %x\n", s, s->ts, s->ignoreSet); psi = rpmpsInitIterator(ps); while (rpmpsNextIterator(psi) >= 0) { rpmProblem p = rpmpsGetProblem(psi); - PyObject * prob = Py_BuildValue("s(isN)", rpmProblemString(p), + char * ps = rpmProblemString(p); + PyObject * prob = Py_BuildValue("s(isN)", ps, rpmProblemGetType(p), rpmProblemGetStr(p), PyLong_FromLongLong(rpmProblemGetLong(p))); PyList_Append(list, prob); + free(ps); Py_DECREF(prob); } |