#include <pakfire/util.h>
struct _Pakfire {
- char* path;
- char* cache_path;
+ char path[PATH_MAX];
+ char cache_path[PATH_MAX];
char* arch;
// Pool stuff
if (pakfire->arch)
free(pakfire->arch);
- if (pakfire->path)
- free(pakfire->path);
-
- if (pakfire->cache_path)
- free(pakfire->cache_path);
-
free(pakfire);
}
p->nrefs = 1;
- p->path = strdup(path);
+ // Set path
+ snprintf(p->path, sizeof(p->path) - 1, "%s", path);
// Set architecture
p->arch = strdup(arch);
PAKFIRE_EXPORT char* pakfire_make_path(Pakfire pakfire, const char* path) {
// Make sure that path never starts with /
- if (path && path[0] == '/')
+ while (path && *path == '/')
path++;
return pakfire_path_join(pakfire->path, path);
}
PAKFIRE_EXPORT void pakfire_set_cache_path(Pakfire pakfire, const char* path) {
- // Release old path
- if (pakfire->cache_path)
- free(pakfire->cache_path);
-
- pakfire->cache_path = strdup(path);
+ DEBUG(pakfire, "Setting cache path to %s\n", path);
- DEBUG(pakfire, "Set cache path to %s\n", pakfire->cache_path);
+ snprintf(pakfire->cache_path, sizeof(pakfire->cache_path) - 1, "%s", path);
}
PAKFIRE_EXPORT char* pakfire_make_cache_path(Pakfire pakfire, const char* path) {