X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=python%2Fspec-py.c;h=1850a50eefed1130c121f4a7289bc37f1296bd57;hb=9cf156d6583a9f9581000bb12ff047980ebcef03;hp=49b9e1d1a9b0f1817f14130481ddb65836961e7b;hpb=c87ad03260fea33da6d64f65709981b06d4e135a;p=platform%2Fupstream%2Frpm.git diff --git a/python/spec-py.c b/python/spec-py.c index 49b9e1d..1850a50 100644 --- a/python/spec-py.c +++ b/python/spec-py.c @@ -151,15 +151,24 @@ static PyObject * spec_get_clean(specObject * s, void *closure) static PyObject * spec_get_sources(specObject *s, void *closure) { - PyObject *sourceList = PyList_New(0); + PyObject *sourceList; rpmSpecSrc source; + sourceList = PyList_New(0); + if (!sourceList) { + return NULL; + } + rpmSpecSrcIter iter = rpmSpecSrcIterInit(s->spec); while ((source = rpmSpecSrcIterNext(iter)) != NULL) { PyObject *srcUrl = Py_BuildValue("(sii)", rpmSpecSrcFilename(source, 1), rpmSpecSrcNum(source), rpmSpecSrcFlags(source)); + if (!srcUrl) { + Py_DECREF(sourceList); + return NULL; + } PyList_Append(sourceList, srcUrl); Py_DECREF(srcUrl); } @@ -172,11 +181,23 @@ static PyObject * spec_get_sources(specObject *s, void *closure) static PyObject * spec_get_packages(specObject *s, void *closure) { rpmSpecPkg pkg; - PyObject *pkgList = PyList_New(0); - rpmSpecPkgIter iter = rpmSpecPkgIterInit(s->spec); + PyObject *pkgList; + rpmSpecPkgIter iter; + + pkgList = PyList_New(0); + if (!pkgList) { + return NULL; + } + + iter = rpmSpecPkgIterInit(s->spec); while ((pkg = rpmSpecPkgIterNext(iter)) != NULL) { PyObject *po = specPkg_Wrap(&specPkg_Type, pkg); + if (!po) { + rpmSpecPkgIterFree(iter); + Py_DECREF(pkgList); + return NULL; + } PyList_Append(pkgList, po); Py_DECREF(po); }