From 2130796658f1ce3f48b85da9318e55a88cc7a541 Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Sun, 25 Aug 2013 10:33:27 +0200
Subject: [PATCH] Switched order of storing x509_req_names to match inputed
order
---
library/x509write.c | 15 +++++----------
tests/suites/test_suite_x509write.function | 2 +-
2 files changed, 6 insertions(+), 11 deletions(-)
diff --git a/library/x509write.c b/library/x509write.c
index 213add6a0..330263645 100644
--- a/library/x509write.c
+++ b/library/x509write.c
@@ -76,7 +76,7 @@ int x509cert_req_set_subject_name( x509_cert_req *ctx, char *subject_name )
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 @@ int x509cert_req_set_subject_name( x509_cert_req *ctx, char *subject_name )
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 @@ int x509cert_req_set_subject_name( x509_cert_req *ctx, char *subject_name )
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 c44cfb7ed..2453bd403 100644
--- a/tests/suites/test_suite_x509write.function
+++ b/tests/suites/test_suite_x509write.function
@@ -23,7 +23,7 @@ void x509_cert_req_check( char *key_file, int md_type,
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 );