aboutsummaryrefslogtreecommitdiffstats
path: root/URPM.xs
diff options
context:
space:
mode:
Diffstat (limited to 'URPM.xs')
-rw-r--r--URPM.xs8
1 files changed, 5 insertions, 3 deletions
diff --git a/URPM.xs b/URPM.xs
index 23a1950..0391ec2 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -3666,13 +3666,15 @@ Urpm_spec2srcheader(specfile)
pkg = (URPM__Package)malloc(sizeof(struct s_Package));
memset(pkg, 0, sizeof(struct s_Package));
pkg->h = headerLink(spec->sourceHeader);
- EXTEND(SP, 1);
sv_pkg = sv_newmortal();
sv_setref_pv(sv_pkg, "URPM::Package", (void*)pkg);
- PUSHs(sv_pkg);
+ XPUSHs(sv_pkg);
spec = freeSpec(spec);
} else {
- PUSHs(&PL_sv_undef);
+ XPUSHs(&PL_sv_undef);
+ /* apparently rpmlib sets errno this when given a bad spec. */
+ if (errno == EBADF)
+ errno = 0;
}
ts = rpmtsFree(ts);