[Spice-devel] [PATCH libcacard] Use proper free function for PK11_ReadRawAttribute call

Frediano Ziglio fziglio at redhat.com
Wed Aug 15 09:30:38 UTC 2018


As documented in PK11_ReadRawAttribute data should be freed with
PORT_Free, not free or g_free.

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 src/vcard_emul_nss.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/vcard_emul_nss.c b/src/vcard_emul_nss.c
index 9658c5a..43707d0 100644
--- a/src/vcard_emul_nss.c
+++ b/src/vcard_emul_nss.c
@@ -1312,6 +1312,7 @@ vcard_emul_read_object(VCard *card, const char *label,
     PK11GenericObject *obj, *firstObj, *myObj = NULL;
     SECItem result;
     SECStatus r;
+    unsigned char *ret;
 
     slot = vcard_emul_card_get_slot(card);
 
@@ -1330,7 +1331,7 @@ vcard_emul_read_object(VCard *card, const char *label,
             && memcmp(label, result.data, result.len) == 0)
             found = 1;
 
-        free(result.data);
+        PORT_Free(result.data);
         result.data = NULL;
 
         if (found) {
@@ -1351,8 +1352,9 @@ vcard_emul_read_object(VCard *card, const char *label,
         return NULL;
 
     *ret_len = result.len;
-    return result.data;
-
+    ret = g_memdup(result.data, result.len);
+    PORT_Free(result.data);
+    return ret;
 }
 
 void
-- 
2.17.1



More information about the Spice-devel mailing list