aboutsummaryrefslogtreecommitdiffstats
path: root/URPM.xs
diff options
context:
space:
mode:
authorPer Øyvind Karlsen <peroyvind@mandriva.org>2010-10-14 14:13:03 +0000
committerPer Øyvind Karlsen <peroyvind@mandriva.org>2010-10-14 14:13:03 +0000
commitfaf0694e5453a78851f2fed79708ba3a8366cf66 (patch)
tree3b0a2330d77af2d170452a3f5eb998731383d0c7 /URPM.xs
parentdcd657cd1aca51741fb29f325aa1120557e39907 (diff)
downloadperl-URPM-faf0694e5453a78851f2fed79708ba3a8366cf66.tar
perl-URPM-faf0694e5453a78851f2fed79708ba3a8366cf66.tar.gz
perl-URPM-faf0694e5453a78851f2fed79708ba3a8366cf66.tar.bz2
perl-URPM-faf0694e5453a78851f2fed79708ba3a8366cf66.tar.xz
perl-URPM-faf0694e5453a78851f2fed79708ba3a8366cf66.zip
fix memleak in ranges_overlap()
Diffstat (limited to 'URPM.xs')
-rw-r--r--URPM.xs6
1 files changed, 5 insertions, 1 deletions
diff --git a/URPM.xs b/URPM.xs
index 80741b6..392704a 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -351,6 +351,7 @@ ranges_overlap(rpmsenseFlags aflags, char *sa, rpmsenseFlags bflags, char *sb) {
char *eosb = strchr(sb, ']');
EVR_t lEVR = rpmEVRnew(aflags, 0),
rEVR = rpmEVRnew(bflags, 0);
+ int result;
if(eosa) backup_char(eosa);
if(eosb) backup_char(eosb);
@@ -359,9 +360,12 @@ ranges_overlap(rpmsenseFlags aflags, char *sa, rpmsenseFlags bflags, char *sb) {
/* TODO: upstream bug? should rpmEVRparse really reset Flags? */
lEVR->Flags = aflags;
rEVR->Flags = bflags;
+ result = rpmEVRoverlap(lEVR, rEVR);
+ rpmEVRfree(lEVR);
+ rpmEVRfree(rEVR);
restore_chars();
- return rpmEVRoverlap(lEVR, rEVR);
+ return result;
}
}