Index: package.c =================================================================== RCS file: /home/cvs-pacman/pacman-lib/lib/libalpm/package.c,v retrieving revision 1.47 diff -u -p -r1.47 package.c --- package.c 19 Jan 2007 18:06:37 -0000 1.47 +++ package.c 21 Jan 2007 18:37:42 -0000 @@ -271,14 +271,23 @@ pmpkg_t *_alpm_pkg_load(char *pkgfile) /* parse the info file */ if(parse_descfile(descfile, info, 0) == -1) { _alpm_log(PM_LOG_ERROR, _("could not parse the package description file")); + unlink(descfile); + FREE(descfile); + close(fd); goto pkg_invalid; } if(!strlen(info->name)) { _alpm_log(PM_LOG_ERROR, _("missing package name in %s"), pkgfile); + unlink(descfile); + FREE(descfile); + close(fd); goto pkg_invalid; } if(!strlen(info->version)) { _alpm_log(PM_LOG_ERROR, _("missing package version in %s"), pkgfile); + unlink(descfile); + FREE(descfile); + close(fd); goto pkg_invalid; } config = 1; @@ -351,9 +360,6 @@ pmpkg_t *_alpm_pkg_load(char *pkgfile) pkg_invalid: pm_errno = PM_ERR_PKG_INVALID; - unlink(descfile); - FREE(descfile); - close(fd); error: FREEPKG(info); archive_read_finish (archive);