]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Move path into archive struct
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 7 Apr 2021 11:23:16 +0000 (11:23 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 7 Apr 2021 11:23:16 +0000 (11:23 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c

index 4fab0ba1480527430856e2031484f33a324483a0..26d77e2607163b4201c3323a40a1cfcd7e794c3b 100644 (file)
@@ -62,7 +62,9 @@ struct pakfire_archive_chksum {
 
 struct _PakfireArchive {
        Pakfire pakfire;
-       char* path;
+       int nrefs;
+
+       char path[PATH_MAX];
        struct stat stat;
 
        // metadata
@@ -82,7 +84,6 @@ struct _PakfireArchive {
        struct pakfire_scriptlet** scriptlets;
        size_t nscriptlets;
 
-       int nrefs;
 };
 
 struct _PakfireArchiveSignature {
@@ -332,9 +333,6 @@ static void pakfire_archive_free(PakfireArchive archive) {
        // Free all checksums
        pakfire_archive_free_chksums(archive);
 
-       if (archive->path)
-               free(archive->path);
-
        // Free signatures
        if (archive->signatures) {
                PakfireArchiveSignature* signatures = archive->signatures;
@@ -632,7 +630,11 @@ static int pakfire_archive_read_metadata(PakfireArchive archive, struct archive*
 }
 
 static int pakfire_archive_try_open(PakfireArchive archive, const char* path) {
-       archive->path = strdup(path);
+       if (!path)
+               return EINVAL;
+
+       // Store path
+       pakfire_string_set(archive->path, path);
 
        // Stat the file and store the result
        int r = stat(archive->path, &archive->stat);