aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/checksum.c40
-rw-r--r--src/config_global.c2
-rw-r--r--src/deps.c3
-rw-r--r--src/environment.c2
-rw-r--r--src/internal_cmd.c3
-rw-r--r--src/manifest.c2
-rw-r--r--src/mime.c4
-rw-r--r--src/mirrors.c2
-rw-r--r--src/rpath.c5
-rw-r--r--src/spm.c6
10 files changed, 25 insertions, 44 deletions
diff --git a/src/checksum.c b/src/checksum.c
index d2d0438..249d6cb 100644
--- a/src/checksum.c
+++ b/src/checksum.c
@@ -2,7 +2,6 @@
* @file checksum.c
*/
#include "spm.h"
-#include <openssl/md5.h>
#include <openssl/sha.h>
/**
@@ -10,43 +9,6 @@
* @param filename
* @return
*/
-char *md5sum(const char *filename) {
- size_t bytes = 0;
- unsigned char digest[MD5_DIGEST_LENGTH];
- char buf[BUFSIZ];
- MD5_CTX context;
- MD5_Init(&context);
- FILE *fp = fopen(filename, "r");
- if (!fp) {
- perror(filename);
- return NULL;
- }
- char *result = calloc((MD5_DIGEST_LENGTH * 2) + 1, sizeof(char));
- if (!result) {
- fclose(fp);
- perror("MD5 result");
- return NULL;
- }
-
- while ((bytes = fread(buf, sizeof(char), BUFSIZ, fp)) != 0) {
- MD5_Update(&context, buf, bytes);
- }
- fclose(fp);
-
- MD5_Final(digest, &context);
- char *rtmp = result;
- for (int i = 0; i < MD5_DIGEST_LENGTH; i++) {
- snprintf(&rtmp[i * 2], 3, "%02x", digest[i]);
- }
-
- return result;
-}
-
-/**
- *
- * @param filename
- * @return
- */
char *sha256sum(const char *filename) {
size_t bytes = 0;
unsigned char digest[SHA256_DIGEST_LENGTH];
@@ -77,4 +39,4 @@ char *sha256sum(const char *filename) {
}
return result;
-} \ No newline at end of file
+}
diff --git a/src/config_global.c b/src/config_global.c
index 0c32ebb..5ef6faa 100644
--- a/src/config_global.c
+++ b/src/config_global.c
@@ -98,6 +98,8 @@ char *get_package_manifest(void) {
char *ucd = get_user_conf_dir();
sprintf(template, "%s%c%s", ucd, DIRSEP, "manifest.dat");
+
+ free(ucd);
return strdup(template);
/*
diff --git a/src/deps.c b/src/deps.c
index 732341d..4b8d6f3 100644
--- a/src/deps.c
+++ b/src/deps.c
@@ -184,12 +184,14 @@ int dep_all(Dependencies **deps, const char *_package) {
if (!tmpdir) {
perror(template);
fprintf(SYSERROR);
+ free(package);
free(suffix);
return -1;
}
if (tar_extract_file(package, ".SPM_DEPENDS", tmpdir) < 0) {
perror(package);
fprintf(SYSERROR);
+ free(package);
free(suffix);
return -1;
}
@@ -211,6 +213,7 @@ int dep_all(Dependencies **deps, const char *_package) {
// Remove temporary data
unlink(depfile);
rmdir(tmpdir);
+ free(package);
free(suffix);
return 0;
}
diff --git a/src/environment.c b/src/environment.c
index 4c8fb14..2d9ebd4 100644
--- a/src/environment.c
+++ b/src/environment.c
@@ -368,7 +368,7 @@ void runtime_set(RuntimeEnv *env, const char *_key, const char *_value) {
else {
env->num_alloc++;
env->env = reallocarray(env->env, sizeof(char *), env->num_alloc);
- env->env[env->num_inuse] = (char *)calloc(strlen(now) + 1, sizeof(char));
+ //env->env[env->num_inuse] = (char *)calloc(strlen(now) + 1, sizeof(char));
env->env[env->num_inuse] = now;
env->num_inuse++;
}
diff --git a/src/internal_cmd.c b/src/internal_cmd.c
index 530d008..bcd0231 100644
--- a/src/internal_cmd.c
+++ b/src/internal_cmd.c
@@ -86,7 +86,7 @@ int mkprefix_interface(int argc, char **argv) {
*
*/
void mkmanifest_interface_usage(void) {
- printf("usage: mkmanifest [package_dir] [output_dir]");
+ printf("usage: mkmanifest [package_dir] [output_dir]\n");
}
/**
@@ -158,6 +158,7 @@ int mirror_clone_interface(int argc, char **argv) {
}
mirror_clone(manifest, path);
+ manifest_free(manifest);
return 0;
}
/**
diff --git a/src/manifest.c b/src/manifest.c
index e8ce5b2..9926fa5 100644
--- a/src/manifest.c
+++ b/src/manifest.c
@@ -100,7 +100,7 @@ Manifest *manifest_from(const char *package_dir) {
*/
void manifest_free(Manifest *info) {
for (size_t i = 0; i < info->records; i++) {
- if (info->packages[i]->requirements) {
+ if (info->packages[i]->requirements != NULL) {
for (int j = 0; info->packages[i]->requirements[j] != NULL; j++) {
free(info->packages[i]->requirements[j]);
}
diff --git a/src/mime.c b/src/mime.c
index 53501cc..33bc017 100644
--- a/src/mime.c
+++ b/src/mime.c
@@ -69,8 +69,8 @@ Mime *file_mimetype(const char *filename) {
type = (Mime *)calloc(1, sizeof(Mime));
type->origin = origin;
- type->type = strdup(what);
- type->charset = strdup(charset);
+ type->type = what;
+ type->charset = charset;
split_free(output);
split_free(parts);
diff --git a/src/mirrors.c b/src/mirrors.c
index 6b294aa..d551842 100644
--- a/src/mirrors.c
+++ b/src/mirrors.c
@@ -96,6 +96,7 @@ void mirror_clone(Manifest *info, char *_dest) {
char *checksum = sha256sum(path);
if (strcmp(checksum, info->packages[i]->checksum_sha256) == 0) {
printf("Skipped: %s\n", archive);
+ //free(checksum);
free(archive);
free(path);
continue;
@@ -116,5 +117,6 @@ void mirror_clone(Manifest *info, char *_dest) {
fprintf(stderr, "WARNING: HTTP(%ld, %s): %s\n", response, http_response_str(response), info->origin);
}
free(dest);
+ free(datafile);
printf("done!\n");
} \ No newline at end of file
diff --git a/src/rpath.c b/src/rpath.c
index a6b6b6c..04d810e 100644
--- a/src/rpath.c
+++ b/src/rpath.c
@@ -128,10 +128,13 @@ char *rpath_generate(const char *_filename) {
}
char *nearest_lib = rpath_autodetect(filename);
if (!nearest_lib) {
+ free(filename);
return NULL;
}
char *result = (char *)calloc(strlen(origin) + strlen(nearest_lib) + 1, sizeof(char));
if (!result) {
+ free(filename);
+ free(nearest_lib);
return NULL;
}
sprintf(result, "%s%s", origin, nearest_lib);
@@ -227,10 +230,12 @@ char *rpath_autodetect(const char *filename) {
if (access(tmp, F_OK) == 0) {
strcat(relative, "lib");
has_real_libdir = 1; // gate for memory allocation below
+ free(visit);
break;
}
// Reaching the top of the file system indicates our search for a lib directory failed
else if (strcmp(visit, "/") == 0) {
+ free(visit);
break;
}
diff --git a/src/spm.c b/src/spm.c
index e0eec10..806cbcd 100644
--- a/src/spm.c
+++ b/src/spm.c
@@ -174,6 +174,12 @@ int main(int argc, char *argv[], char *arge[]) {
runtime_set(rt, "LDFLAGS", "-Wl,-rpath $SPM_LIB:$${ORIGIN}/lib -L$SPM_LIB $LDFLAGS");
runtime_apply(rt);
+ free(spm_binpath);
+ free(spm_includepath);
+ free(spm_libpath);
+ free(spm_datapath);
+ free(spm_manpath);
+
if (RUNTIME_INSTALL) {
Dependencies *deps = NULL;
dep_init(&deps);