aboutsummaryrefslogtreecommitdiff
path: root/src/install.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-03-02 16:20:58 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-03-02 16:20:58 -0500
commit9c2e7fae92152736a30fe487df3d3942e5a3e172 (patch)
tree764a0ebd9a17672586ea84cd7e99d0e44be3e754 /src/install.c
parentd49db7d0981861d979765647cce3c6468a012301 (diff)
downloadspmc-9c2e7fae92152736a30fe487df3d3942e5a3e172.tar.gz
Begin consolidating paths (manifests and temp directories)
Diffstat (limited to 'src/install.c')
-rw-r--r--src/install.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/install.c b/src/install.c
index ebbab4a..5e39890 100644
--- a/src/install.c
+++ b/src/install.c
@@ -148,7 +148,7 @@ char *spm_install_fetch(const char *pkgdir, const char *_package) {
size_t tmp_package_len = strlen(payload);
if (tmp_package_len > strlen(package)) {
- char *tmp = realloc(package, (strlen(package) + 1) * sizeof(char));
+ char *tmp = realloc(package, (strlen(tmp_package_len) + 1) * sizeof(char));
if (tmp == NULL) {
perror("cannot realloc package path");
return NULL;
@@ -180,7 +180,7 @@ int spm_do_install(SPM_Hierarchy *fs, ManifestList *mf, StrList *packages) {
size_t num_requirements = 0;
ManifestPackage **requirements = NULL;
char source[PATH_MAX];
- char *tmpdir = spm_mkdtemp("spm_destroot");
+ char *tmpdir = spm_mkdtemp("spm_destroot", NULL);
if (tmpdir == NULL) {
perror("Could not create temporary destination root");
@@ -223,7 +223,7 @@ int spm_do_install(SPM_Hierarchy *fs, ManifestList *mf, StrList *packages) {
}
int fetched = 0;
- char *package_dir = join_ex(DIRSEPS, SPM_GLOBAL.package_dir, SPM_GLOBAL.repo_target, NULL);
+ char *package_dir = strdup(SPM_GLOBAL.package_dir);
for (size_t i = 0; requirements != NULL && requirements[i] != NULL; i++) {
char *package_path = join((char *[]) {requirements[i]->origin, SPM_GLOBAL.repo_target, requirements[i]->archive, NULL}, DIRSEPS);
char *package_localpath = join_ex(DIRSEPS, package_dir, requirements[i]->archive, NULL);
@@ -233,6 +233,8 @@ int spm_do_install(SPM_Hierarchy *fs, ManifestList *mf, StrList *packages) {
printf("Fetching: %s\n", package_path);
package_path = spm_install_fetch(package_dir, package_path);
if (package_path == NULL) {
+ free(package_path);
+ free(package_localpath);
exit(1);
}
fetched = 1;