Switched order of storing x509_req_names to match inputed order
diff --git a/library/x509write.c b/library/x509write.c
index 213add6..3302636 100644
--- a/library/x509write.c
+++ b/library/x509write.c
@@ -76,7 +76,7 @@
char *end = s + strlen( s );
char *oid = NULL;
int in_tag = 1;
- x509_req_name *cur = ctx->subject;
+ x509_req_name *cur;
while( ctx->subject )
{
@@ -121,15 +121,7 @@
goto exit;
}
- if( cur == NULL )
- {
- ctx->subject = cur = polarssl_malloc( sizeof(x509_req_name) );
- }
- else
- {
- cur->next = polarssl_malloc( sizeof(x509_req_name) );
- cur = cur->next;
- }
+ cur = polarssl_malloc( sizeof(x509_req_name) );
if( cur == NULL )
{
@@ -139,6 +131,9 @@
memset( cur, 0, sizeof(x509_req_name) );
+ cur->next = ctx->subject;
+ ctx->subject = cur;
+
strncpy( cur->oid, oid, strlen( oid ) );
strncpy( cur->name, s, c - s );
diff --git a/tests/suites/test_suite_x509write.function b/tests/suites/test_suite_x509write.function
index c44cfb7..2453bd4 100644
--- a/tests/suites/test_suite_x509write.function
+++ b/tests/suites/test_suite_x509write.function
@@ -23,7 +23,7 @@
int ret;
size_t olen = 2000;
FILE *f;
- char *subject_name = "CN=PolarSSL Server 1,O=PolarSSL,C=NL";
+ char *subject_name = "C=NL,O=PolarSSL,CN=PolarSSL Server 1";
memset( &rsa, 0, sizeof(rsa_context) );
ret = x509parse_keyfile_rsa( &rsa, key_file, NULL );