diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-06-22 16:58:49 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-06-22 16:58:49 -0400 |
commit | 155b25db75ecad4b19fd9a36b1aad64d436925dc (patch) | |
tree | 33a5a5a608aaba2752ee3f2188370d315b15864a | |
parent | 1408cf26270337c7c95cb0b5075fd303d6227b48 (diff) | |
download | spmc-155b25db75ecad4b19fd9a36b1aad64d436925dc.tar.gz |
Errors from tar are not always "errors"
-rw-r--r-- | lib/install.c | 6 |
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; } |