Missed a mention of RT
[oweals/openssl.git] / crypto / rsa / rsa_meth.c
index 731164c5615fbe7ff77394e7e5283d5ff212ef2a..ef0dc9751f240758ee80b6bc99f302dde14521d8 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <string.h>
 #include "rsa_locl.h"
+#include <openssl/err.h>
 
 RSA_METHOD *RSA_meth_new(const char *name, int flags)
 {
@@ -18,6 +19,7 @@ RSA_METHOD *RSA_meth_new(const char *name, int flags)
         meth->name = OPENSSL_strdup(name);
         if (meth->name == NULL) {
             OPENSSL_free(meth);
+            RSAerr(RSA_F_RSA_METH_NEW, ERR_R_MALLOC_FAILURE);
             return NULL;
         }
         meth->flags = flags;
@@ -29,8 +31,7 @@ RSA_METHOD *RSA_meth_new(const char *name, int flags)
 void RSA_meth_free(RSA_METHOD *meth)
 {
     if (meth != NULL) {
-        if (meth->name != NULL)
-            OPENSSL_free(meth->name);
+        OPENSSL_free(meth->name);
         OPENSSL_free(meth);
     }
 }
@@ -46,6 +47,7 @@ RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth)
         ret->name = OPENSSL_strdup(meth->name);
         if (ret->name == NULL) {
             OPENSSL_free(ret);
+            RSAerr(RSA_F_RSA_METH_DUP, ERR_R_MALLOC_FAILURE);
             return NULL;
         }
     }
@@ -63,8 +65,10 @@ int RSA_meth_set1_name(RSA_METHOD *meth, const char *name)
     char *tmpname;
 
     tmpname = OPENSSL_strdup(name);
-    if (tmpname == NULL)
+    if (tmpname == NULL) {
+        RSAerr(RSA_F_RSA_METH_SET1_NAME, ERR_R_MALLOC_FAILURE);
         return 0;
+    }
 
     OPENSSL_free(meth->name);
     meth->name = tmpname;