Fix regressions in xbps_unpack_binary_pkg().
This commit is contained in:
parent
5cb74b7ec9
commit
e36bedb036
@ -119,6 +119,9 @@ unpack_archive(struct xbps_handle *xhp,
|
|||||||
|
|
||||||
euid = geteuid();
|
euid = geteuid();
|
||||||
|
|
||||||
|
pkgname = xbps_pkg_name(pkgver);
|
||||||
|
assert(pkgname);
|
||||||
|
|
||||||
if (xhp->flags & XBPS_FLAG_FORCE_UNPACK)
|
if (xhp->flags & XBPS_FLAG_FORCE_UNPACK)
|
||||||
force = true;
|
force = true;
|
||||||
|
|
||||||
@ -194,7 +197,7 @@ unpack_archive(struct xbps_handle *xhp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
rv = xbps_pkg_exec_buffer(xhp, instbuf, instbufsiz,
|
rv = xbps_pkg_exec_buffer(xhp, instbuf, instbufsiz,
|
||||||
pkgver, "pre", update);
|
pkgname, "pre", update);
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
xbps_set_cb_state(xhp,
|
xbps_set_cb_state(xhp,
|
||||||
XBPS_STATE_UNPACK_FAIL,
|
XBPS_STATE_UNPACK_FAIL,
|
||||||
@ -307,7 +310,7 @@ unpack_archive(struct xbps_handle *xhp,
|
|||||||
xucd.entry_is_conf = true;
|
xucd.entry_is_conf = true;
|
||||||
|
|
||||||
rv = xbps_entry_install_conf_file(xhp,
|
rv = xbps_entry_install_conf_file(xhp,
|
||||||
filesd, entry, entry_pname, pkgver);
|
filesd, entry, entry_pname, pkgname);
|
||||||
if (rv == -1) {
|
if (rv == -1) {
|
||||||
/* error */
|
/* error */
|
||||||
goto out;
|
goto out;
|
||||||
@ -484,7 +487,7 @@ unpack_archive(struct xbps_handle *xhp,
|
|||||||
* - Package upgrade.
|
* - Package upgrade.
|
||||||
* - Package with "softreplace" keyword.
|
* - Package with "softreplace" keyword.
|
||||||
*/
|
*/
|
||||||
old_filesd = xbps_pkgdb_get_pkg_metadata(xhp, pkgver);
|
old_filesd = xbps_pkgdb_get_pkg_metadata(xhp, pkgname);
|
||||||
if (old_filesd == NULL)
|
if (old_filesd == NULL)
|
||||||
goto out1;
|
goto out1;
|
||||||
|
|
||||||
@ -558,9 +561,6 @@ out1:
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pkgname = xbps_pkg_name(pkgver);
|
|
||||||
assert(pkgname);
|
|
||||||
|
|
||||||
buf = xbps_xasprintf("%s/.%s.plist", XBPS_META_PATH, pkgname);
|
buf = xbps_xasprintf("%s/.%s.plist", XBPS_META_PATH, pkgname);
|
||||||
if (!prop_dictionary_externalize_to_file(pkg_metad, buf)) {
|
if (!prop_dictionary_externalize_to_file(pkg_metad, buf)) {
|
||||||
rv = errno;
|
rv = errno;
|
||||||
@ -569,11 +569,9 @@ out1:
|
|||||||
"%s: [unpack] failed to extract metadata file `%s': %s",
|
"%s: [unpack] failed to extract metadata file `%s': %s",
|
||||||
pkgver, buf, strerror(errno));
|
pkgver, buf, strerror(errno));
|
||||||
free(buf);
|
free(buf);
|
||||||
free(pkgname);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
free(buf);
|
free(buf);
|
||||||
free(pkgname);
|
|
||||||
out:
|
out:
|
||||||
if (prop_object_type(pkg_metad) == PROP_TYPE_DICTIONARY)
|
if (prop_object_type(pkg_metad) == PROP_TYPE_DICTIONARY)
|
||||||
prop_object_release(pkg_metad);
|
prop_object_release(pkg_metad);
|
||||||
@ -581,6 +579,8 @@ out:
|
|||||||
prop_object_release(filesd);
|
prop_object_release(filesd);
|
||||||
if (prop_object_type(propsd) == PROP_TYPE_DICTIONARY)
|
if (prop_object_type(propsd) == PROP_TYPE_DICTIONARY)
|
||||||
prop_object_release(propsd);
|
prop_object_release(propsd);
|
||||||
|
if (pkgname != NULL)
|
||||||
|
free(pkgname);
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user