Parse authz correctly.
authorBen Laurie <ben@openssl.org>
Wed, 6 Jun 2012 12:52:19 +0000 (12:52 +0000)
committerBen Laurie <ben@openssl.org>
Wed, 6 Jun 2012 12:52:19 +0000 (12:52 +0000)
ssl/s3_srvr.c
ssl/t1_lib.c

index fdf8052..b372a9a 100644 (file)
@@ -3676,6 +3676,8 @@ int tls1_send_server_supplemental_data(SSL *s)
 
                type = *(authz++);
                n2s(authz, len);
 
                type = *(authz++);
                n2s(authz, len);
+               /* n2s increments authz by 2*/
+               i += 2;
 
                if (memchr(s->s3->tlsext_authz_client_types,
                           type,
 
                if (memchr(s->s3->tlsext_authz_client_types,
                           type,
@@ -3719,6 +3721,8 @@ int tls1_send_server_supplemental_data(SSL *s)
 
                type = *(authz++);
                n2s(authz, len);
 
                type = *(authz++);
                n2s(authz, len);
+               /* n2s increments authz by 2 */
+               i += 2;
 
                if (memchr(s->s3->tlsext_authz_client_types,
                           type,
 
                if (memchr(s->s3->tlsext_authz_client_types,
                           type,
index bb4fbe6..85a5681 100644 (file)
@@ -1234,6 +1234,8 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha
                                authz_count++;
 
                        n2s(authz, length);
                                authz_count++;
 
                        n2s(authz, length);
+                       /* n2s increments authz by 2 */
+                       i += 2;
                        authz += length;
                        i += length;
                        }
                        authz += length;
                        i += length;
                        }
@@ -1267,6 +1269,8 @@ unsigned char *ssl_add_serverhello_tlsext(SSL *s, unsigned char *p, unsigned cha
                                   s->s3->tlsext_authz_client_types_len) != NULL)
                                *(ret++) = type;
                        n2s(authz, length);
                                   s->s3->tlsext_authz_client_types_len) != NULL)
                                *(ret++) = type;
                        n2s(authz, length);
+                       /* n2s increments authz by 2 */
+                       i += 2;
                        authz += length;
                        i += length;
                        }
                        authz += length;
                        i += length;
                        }