]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
Properly handle empty RDN values in DN strings.
authorTobias Brunner <tobias@strongswan.org>
Thu, 7 Jun 2012 14:50:11 +0000 (16:50 +0200)
committerTobias Brunner <tobias@strongswan.org>
Thu, 7 Jun 2012 14:50:11 +0000 (16:50 +0200)
src/libstrongswan/utils/identification.c

index 9f0007f78db6ebdbebd9509aa3108c7ef90ade43..0fa11690f354d41a824815594bc72a1a98b08669 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009 Tobias Brunner
+ * Copyright (C) 2009-2012 Tobias Brunner
  * Copyright (C) 2005-2009 Martin Willi
  * Copyright (C) 2005 Jan Hutter
  * Hochschule fuer Technik Rapperswil
@@ -414,14 +414,22 @@ static status_t atodn(char *src, chunk_t *dn)
                                }
                                break;
                        case SEARCH_NAME:
-                               if (*src != ' ' && *src != '=')
+                               if (*src == ' ' || *src == '=')
+                               {
+                                       break;
+                               }
+                               else if (*src != ',' && *src != '/')
                                {
                                        name.ptr = src;
                                        name.len = 1;
                                        whitespace = 0;
                                        state = READ_NAME;
+                                       break;
                                }
-                               break;
+                               name = chunk_empty;
+                               whitespace = 0;
+                               state = READ_NAME;
+                               /* fall-through */
                        case READ_NAME:
                                if (*src != ',' && *src != '/' && *src != '\0')
                                {