Fix oid memory leak

Signed-off-by: Agathiyan Bragadeesh <agathiyan.bragadeesh2@arm.com>
diff --git a/library/x509_create.c b/library/x509_create.c
index 8a648e3..0f1b8d0 100644
--- a/library/x509_create.c
+++ b/library/x509_create.c
@@ -285,7 +285,7 @@
                     numericoid = 1;
                 }
             } else {
-                oid = malloc(strlen(attr_descr->oid));
+                oid = calloc(1, strlen(attr_descr->oid));
                 strcpy(oid, attr_descr->oid);
                 numericoid = 0;
             }
@@ -300,11 +300,13 @@
                      parse_attribute_value_ber_encoded(s, (int) (c - s), data, &data_len,
                                                        &tag)) != 0) {
                 if (numericoid) {
+                    mbedtls_free(oid);
                     return MBEDTLS_ERR_X509_INVALID_NAME;
                 } else {
                     if ((parse_ret =
                              parse_attribute_value_string(s, (int) (c - s), data,
                                                           &data_len)) != 0) {
+                        mbedtls_free(oid);
                         return parse_ret;
                     }
                     tag = attr_descr->default_tag;
@@ -314,11 +316,13 @@
             if (!numericoid) {
                 if ((parse_ret =
                          parse_attribute_value_string(s, (int) (c - s), data, &data_len)) != 0) {
+                    mbedtls_free(oid);
                     return parse_ret;
                 }
                 tag = attr_descr->default_tag;
             }
             if (numericoid) {
+                mbedtls_free(oid);
                 return MBEDTLS_ERR_X509_INVALID_NAME;
             }
 #endif
@@ -327,6 +331,7 @@
                                               (unsigned char *) data,
                                               data_len);
             mbedtls_free(oid);
+            oid = NULL;
             if (cur == NULL) {
                 return MBEDTLS_ERR_X509_ALLOC_FAILED;
             }
@@ -346,6 +351,9 @@
         }
         c++;
     }
+    if (oid != NULL) {
+        mbedtls_free(oid);
+    }
     return ret;
 }