Const-correct GENERAL_NAME_cmp.

Also make it a little shorter.

Change-Id: I6ee9d7666e9cf622509c54966a88f899a1974f9f
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/44405
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/x509v3/v3_genn.c b/crypto/x509v3/v3_genn.c
index af7e4e1..ae79374 100644
--- a/crypto/x509v3/v3_genn.c
+++ b/crypto/x509v3/v3_genn.c
@@ -122,44 +122,37 @@
 }
 
 /* Returns 0 if they are equal, != 0 otherwise. */
-int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b)
+int GENERAL_NAME_cmp(const GENERAL_NAME *a, const GENERAL_NAME *b)
 {
-    int result = -1;
-
     if (!a || !b || a->type != b->type)
         return -1;
+
     switch (a->type) {
     case GEN_X400:
-        result = ASN1_TYPE_cmp(a->d.x400Address, b->d.x400Address);
-        break;
+        return ASN1_TYPE_cmp(a->d.x400Address, b->d.x400Address);
 
     case GEN_EDIPARTY:
-        result = edipartyname_cmp(a->d.ediPartyName, b->d.ediPartyName);
-        break;
+        return edipartyname_cmp(a->d.ediPartyName, b->d.ediPartyName);
 
     case GEN_OTHERNAME:
-        result = OTHERNAME_cmp(a->d.otherName, b->d.otherName);
-        break;
+        return OTHERNAME_cmp(a->d.otherName, b->d.otherName);
 
     case GEN_EMAIL:
     case GEN_DNS:
     case GEN_URI:
-        result = ASN1_STRING_cmp(a->d.ia5, b->d.ia5);
-        break;
+        return ASN1_STRING_cmp(a->d.ia5, b->d.ia5);
 
     case GEN_DIRNAME:
-        result = X509_NAME_cmp(a->d.dirn, b->d.dirn);
-        break;
+        return X509_NAME_cmp(a->d.dirn, b->d.dirn);
 
     case GEN_IPADD:
-        result = ASN1_OCTET_STRING_cmp(a->d.ip, b->d.ip);
-        break;
+        return ASN1_OCTET_STRING_cmp(a->d.ip, b->d.ip);
 
     case GEN_RID:
-        result = OBJ_cmp(a->d.rid, b->d.rid);
-        break;
+        return OBJ_cmp(a->d.rid, b->d.rid);
     }
-    return result;
+
+    return -1;
 }
 
 /* Returns 0 if they are equal, != 0 otherwise. */
diff --git a/include/openssl/x509v3.h b/include/openssl/x509v3.h
index 09fc4ea..2c9ba73 100644
--- a/include/openssl/x509v3.h
+++ b/include/openssl/x509v3.h
@@ -478,9 +478,8 @@
 // GENERAL_NAME_cmp returns zero if |a| and |b| are equal and a non-zero
 // value otherwise. Note this function does not provide a comparison suitable
 // for sorting.
-//
-// TODO(davidben): Const-correct this function.
-OPENSSL_EXPORT int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b);
+OPENSSL_EXPORT int GENERAL_NAME_cmp(const GENERAL_NAME *a,
+                                    const GENERAL_NAME *b);