]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Initialize GPGME before trying to use data functions
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Jul 2021 10:59:29 +0000 (10:59 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Jul 2021 10:59:29 +0000 (10:59 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c

index db9ad7e3055e569f7b8aac36e3014cfd2298d29b..78835ea2bf743677a5504efeaf4a0e9ab5ce2560 100644 (file)
@@ -1258,6 +1258,11 @@ static int pakfire_archive_verify_signatures(PakfireArchive archive) {
        char* buffer = NULL;
        size_t size = 0;
 
+       // Fetch GPGME context (to initialize GPGME)
+       gpgme_ctx_t gpgctx = pakfire_get_gpgctx(archive->pakfire);
+       if (!gpgctx)
+               return 1;
+
        // Find checksums
        int r = open_archive_and_read(archive, "chksums", &buffer, &size);
        if (r) {
@@ -1270,6 +1275,7 @@ static int pakfire_archive_verify_signatures(PakfireArchive archive) {
        // Convert checksums readable for GPGME
        gpgme_error_t error = gpgme_data_new_from_mem(&checksums, buffer, size, 0);
        if (error != GPG_ERR_NO_ERROR) {
+               ERROR(archive->pakfire, "Could not initialize chksums: %s\n", gpgme_strerror(error));
                r = 1;
                goto ERROR;
        }