aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/install.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/install.c b/lib/install.c
index 8930362..f0fb019 100644
--- a/lib/install.c
+++ b/lib/install.c
@@ -230,6 +230,7 @@ void spm_show_packages(ManifestList *info) {
* @return success=0, exists=1, error=-1 (general), -2 (unable to create `destroot`)
*/
int spm_install(SPM_Hierarchy *fs, const char *tmpdir, const char *_package) {
+ int status_tar;
char *package = strdup(_package);
if (!package) {
@@ -241,8 +242,9 @@ int spm_install(SPM_Hierarchy *fs, const char *tmpdir, const char *_package) {
printf("Extracting archive: %s\n", package);
}
- if (tar_extract_archive(package, tmpdir) != 0) {
- fprintf(stderr, "%s: %s\n", package, strerror(errno));
+ status_tar = 0;
+ if ((status_tar = tar_extract_archive(package, tmpdir)) != 0) {
+ fprintf(stderr, "Extraction program returned non-zero: %d: %s\n", status_tar, package);
free(package);
return -1;
}