]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
pkcs11: Fixes to prevent undefined behavior (found with libubsan)
authorNikos Mavrogiannopoulos <nmav@redhat.com>
Mon, 29 Feb 2016 09:18:58 +0000 (10:18 +0100)
committerNikos Mavrogiannopoulos <nmav@redhat.com>
Mon, 29 Feb 2016 09:18:58 +0000 (10:18 +0100)
lib/pkcs11.c
lib/pkcs11_int.h

index dd22e4caefee4f458ef3a4212d3eabaaea57d62b..b2508d4ed472f25d928300077df9fc6ee87c7de2 100644 (file)
@@ -2998,7 +2998,8 @@ gnutls_pkcs11_obj_list_import_url3(gnutls_pkcs11_obj_t * p_list,
        }
 
        *n_list = priv.current;
-       memcpy(p_list, priv.p_list, priv.current*sizeof(p_list[0]));
+       if (p_list)
+               memcpy(p_list, priv.p_list, priv.current*sizeof(p_list[0]));
        gnutls_free(priv.p_list);
 
        return 0;
index 272e426ae27d089d6095797a5eff863d32f31141..08557876909a9b95c23f7158bf611c3341fd39db 100644 (file)
@@ -142,7 +142,7 @@ ck_object_class_t pkcs11_strtype_to_class(const char *type);
  * @GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY: Hint for private key */
 #define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT (1<<29)
 #define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY (1<<30)
-#define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY (1<<31)
+#define GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY ((unsigned int)1<<31)
 
 int pkcs11_token_matches_info(struct p11_kit_uri *info,
                              struct ck_token_info *tinfo,