From ecf169cda8a941162c4797da967e0d4ee8e68a2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20=C3=98yvind=20Karlsen?= Date: Thu, 23 Dec 2010 13:44:37 +0000 Subject: fix code expecting get_fullname_parts_info() not to return void --- URPM.xs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/URPM.xs b/URPM.xs index 70de2d1..1973a97 100644 --- a/URPM.xs +++ b/URPM.xs @@ -783,48 +783,47 @@ return_list_tag(URPM__Package pkg, const char *tag_name) { switch (tag) { case RPMTAG_NAME: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); + if(!strlen(name)) croak("invalid fullname"); XPUSHs(sv_2mortal(newSVpv(name, 0))); } break; case RPMTAG_EPOCH: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) - croak("invalid fullname"); + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); XPUSHs(sv_2mortal(newSViv(epoch))); } case RPMTAG_VERSION: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); + if(!strlen(version)) croak("invalid fullname"); XPUSHs(sv_2mortal(newSVpv(version, 0))); } break; case RPMTAG_RELEASE: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); + if(!strlen(release)) croak("invalid fullname"); XPUSHs(sv_2mortal(newSVpv(release, 0))); } break; case RPMTAG_DISTTAG: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) - croak("invalid fullname"); + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); XPUSHs(sv_2mortal(newSVpv(disttag, 0))); } break; case RPMTAG_DISTEPOCH: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) - croak("invalid fullname"); + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); XPUSHs(sv_2mortal(newSVpv(distepoch, 0))); } break; case RPMTAG_ARCH: { - if(get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos)) - croak("invalid fullname"); + get_fullname_parts_info(pkg, &name, &epoch, &version, &release, &arch, &disttag, &distepoch, &eos); XPUSHs(sv_2mortal(newSVpv(arch, 0))); } break; -- cgit v1.2.1