void-packages/srcpkgs/xbps/patches/0001-xbps-rindex-sign-pubkey-buffer-must-be-kept-until-in.patch

43 lines
1.3 KiB
Diff

From cbe05bd0f4a07c0fcd451c1dc2485bd35b7fb445 Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@gmail.com>
Date: Thu, 6 Feb 2014 12:26:17 +0100
Subject: [PATCH] xbps-rindex: [sign] pubkey buffer must be kept until
index-meta is externalized too.
---
bin/xbps-rindex/sign.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/bin/xbps-rindex/sign.c b/bin/xbps-rindex/sign.c
index 1939259..795ab15 100644
--- a/bin/xbps-rindex/sign.c
+++ b/bin/xbps-rindex/sign.c
@@ -128,7 +128,7 @@ sign_repo(struct xbps_handle *xhp, const char *repodir,
unsigned int siglen;
uint16_t rpubkeysize, pubkeysize;
const char *arch, *pkgver, *rsignedby = NULL;
- char *binpkg, *binpkg_sig, *buf, *defprivkey;
+ char *binpkg, *binpkg_sig, *buf = NULL, *defprivkey;
int binpkg_fd, binpkg_sig_fd, rv = 0;
bool flush = false;
@@ -265,7 +265,6 @@ sign_repo(struct xbps_handle *xhp, const char *repodir,
if (!xbps_data_equals(rpubkey, data))
flush = true;
- free(buf);
pubkeysize = RSA_size(rsa) * 8;
xbps_dictionary_get_uint16(repo->idxmeta, "public-key-size", &rpubkeysize);
@@ -298,6 +297,8 @@ sign_repo(struct xbps_handle *xhp, const char *repodir,
out:
index_unlock(il);
+ if (buf)
+ free(buf);
if (data)
xbps_object_release(data);
if (rsa) {
--
1.8.5.3