diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2006-04-03 18:04:00 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2006-04-03 18:04:00 +0000 |
commit | 49963d2b72a5d8438c87d494c3e002264e4c3507 (patch) | |
tree | 81884dc86b8de15c969ddbdbf7be69b8c7539811 | |
parent | a97c30adfff5961f2f5c608f3ecd3eda1c71a43f (diff) | |
download | gnutls-49963d2b72a5d8438c87d494c3e002264e4c3507.tar.gz |
use snprintf() instead of multiple calls to str_cpy() and str_cat().
-rw-r--r-- | lib/x509/common.c | 13 | ||||
-rw-r--r-- | lib/x509/common.h | 4 | ||||
-rw-r--r-- | lib/x509/crl.c | 17 | ||||
-rw-r--r-- | lib/x509/crq.c | 23 | ||||
-rw-r--r-- | lib/x509/dn.c | 89 | ||||
-rw-r--r-- | lib/x509/extensions.c | 24 | ||||
-rw-r--r-- | lib/x509/pkcs12.c | 39 | ||||
-rw-r--r-- | lib/x509/pkcs7.c | 29 | ||||
-rw-r--r-- | lib/x509/x509.c | 29 |
9 files changed, 81 insertions, 186 deletions
diff --git a/lib/x509/common.c b/lib/x509/common.c index 2872bec895..4e2bbc1bf1 100644 --- a/lib/x509/common.c +++ b/lib/x509/common.c @@ -359,19 +359,6 @@ _gnutls_x509_data2hex (const opaque * data, size_t data_size, } -/* this function will convert up to 3 digit - * numbers to characters. Use a character string of MAX_INT_DIGITS, in - * order to have enough space for it. - */ -void -_gnutls_int2str (unsigned int k, char *data) -{ - if (k > 999) - sprintf (data, "%d", 999); - else - sprintf (data, "%d", k); -} - /* TIME functions * Convertions between generalized or UTC time to time_t * diff --git a/lib/x509/common.h b/lib/x509/common.h index cd82c4e14b..a993f343a3 100644 --- a/lib/x509/common.h +++ b/lib/x509/common.h @@ -27,10 +27,6 @@ #include <gnutls_algorithms.h> -/* for int2str */ -#define MAX_INT_DIGITS 4 -void _gnutls_int2str (unsigned int k, char *data); - #define MAX_STRING_LEN 512 #define GNUTLS_XML_SHOW_ALL 1 diff --git a/lib/x509/crl.c b/lib/x509/crl.c index 249848e4a4..c3ab76939e 100644 --- a/lib/x509/crl.c +++ b/lib/x509/crl.c @@ -445,9 +445,8 @@ gnutls_x509_crl_get_crt_serial (gnutls_x509_crl_t crl, int indx, { int result, _serial_size; - char str_index[MAX_INT_DIGITS]; - char serial_name[64]; - char date_name[64]; + char serial_name[MAX_NAME_SIZE]; + char date_name[MAX_NAME_SIZE]; if (crl == NULL) { @@ -455,16 +454,8 @@ gnutls_x509_crl_get_crt_serial (gnutls_x509_crl_t crl, int indx, return GNUTLS_E_INVALID_REQUEST; } - _gnutls_int2str (indx + 1, str_index); - _gnutls_str_cpy (serial_name, sizeof (serial_name), - "tbsCertList.revokedCertificates.?"); - _gnutls_str_cat (serial_name, sizeof (serial_name), str_index); - _gnutls_str_cat (serial_name, sizeof (serial_name), ".userCertificate"); - - _gnutls_str_cpy (date_name, sizeof (date_name), - "tbsCertList.revokedCertificates.?"); - _gnutls_str_cat (date_name, sizeof (date_name), str_index); - _gnutls_str_cat (date_name, sizeof (date_name), ".revocationDate"); + snprintf( serial_name, sizeof(serial_name), "tbsCertList.revokedCertificates.?%u.userCertificate", indx+1); + snprintf( date_name, sizeof(date_name), "tbsCertList.revokedCertificates.?%u.revocationDate", indx+1); _serial_size = *serial_size; result = asn1_read_value (crl->crl, serial_name, serial, &_serial_size); diff --git a/lib/x509/crq.c b/lib/x509/crq.c index 4ff6ac3a8f..da759ba66f 100644 --- a/lib/x509/crq.c +++ b/lib/x509/crq.c @@ -292,9 +292,8 @@ parse_attribute (ASN1_TYPE asn1_struct, int raw, char *buf, size_t * sizeof_buf) { int k1, result; - char tmpbuffer1[64]; - char tmpbuffer3[64]; - char counter[MAX_INT_DIGITS]; + char tmpbuffer1[MAX_NAME_SIZE]; + char tmpbuffer3[MAX_NAME_SIZE]; char value[200]; char oid[128]; int len, printable; @@ -314,13 +313,10 @@ parse_attribute (ASN1_TYPE asn1_struct, k1++; /* create a string like "attribute.?1" */ - _gnutls_int2str (k1, counter); - _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), attr_name); - - if (strlen (tmpbuffer1) > 0) - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "."); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?"); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter); + if (attr_name[0] != 0) + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", attr_name, k1); + else + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1); len = sizeof (value) - 1; result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len); @@ -362,12 +358,7 @@ parse_attribute (ASN1_TYPE asn1_struct, /* Read the Value */ - _gnutls_str_cpy (tmpbuffer3, sizeof (tmpbuffer3), tmpbuffer1); - - _gnutls_int2str (indx + 1, counter); - - _gnutls_str_cat (tmpbuffer3, sizeof (tmpbuffer3), ".values.?"); - _gnutls_str_cat (tmpbuffer3, sizeof (tmpbuffer3), counter); + snprintf( tmpbuffer3, sizeof (tmpbuffer3), "%s.values.?%u", tmpbuffer1, indx+1); len = sizeof (value) - 1; result = asn1_read_value (asn1_struct, tmpbuffer3, value, &len); diff --git a/lib/x509/dn.c b/lib/x509/dn.c index 9020b81713..75b258a853 100644 --- a/lib/x509/dn.c +++ b/lib/x509/dn.c @@ -93,10 +93,9 @@ _gnutls_x509_parse_dn (ASN1_TYPE asn1_struct, { gnutls_string out_str; int k2, k1, result; - char tmpbuffer1[64]; - char tmpbuffer2[64]; - char tmpbuffer3[64]; - char counter[MAX_INT_DIGITS]; + char tmpbuffer1[MAX_NAME_SIZE]; + char tmpbuffer2[MAX_NAME_SIZE]; + char tmpbuffer3[MAX_NAME_SIZE]; opaque value[MAX_STRING_LEN], *value2 = NULL; char *escaped = NULL; const char *ldap_desc; @@ -125,13 +124,11 @@ _gnutls_x509_parse_dn (ASN1_TYPE asn1_struct, k1++; /* create a string like "tbsCertList.issuer.rdnSequence.?1" */ - _gnutls_int2str (k1, counter); - _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), asn1_rdn_name); - if (strlen (tmpbuffer1) > 0) - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "."); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?"); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter); - + if (asn1_rdn_name[0]!=0) + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", asn1_rdn_name, k1); + else + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1); + len = sizeof (value) - 1; result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len); @@ -154,12 +151,10 @@ _gnutls_x509_parse_dn (ASN1_TYPE asn1_struct, */ k2++; - _gnutls_int2str (k2, counter); - _gnutls_str_cpy (tmpbuffer2, sizeof (tmpbuffer2), tmpbuffer1); - if (strlen (tmpbuffer2) > 0) - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "."); - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "?"); - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), counter); + if (tmpbuffer1[0] != 0) + snprintf( tmpbuffer2, sizeof (tmpbuffer2), "%s.?%u", tmpbuffer1, k2); + else + snprintf( tmpbuffer2, sizeof (tmpbuffer2), "?%u", k2); /* Try to read the RelativeDistinguishedName attributes. */ @@ -343,10 +338,9 @@ _gnutls_x509_parse_dn_oid (ASN1_TYPE asn1_struct, void *buf, size_t * sizeof_buf) { int k2, k1, result; - char tmpbuffer1[64]; - char tmpbuffer2[64]; - char tmpbuffer3[64]; - char counter[MAX_INT_DIGITS]; + char tmpbuffer1[MAX_NAME_SIZE]; + char tmpbuffer2[MAX_NAME_SIZE]; + char tmpbuffer3[MAX_NAME_SIZE]; opaque value[256]; char oid[128]; int len, printable; @@ -365,13 +359,10 @@ _gnutls_x509_parse_dn_oid (ASN1_TYPE asn1_struct, k1++; /* create a string like "tbsCertList.issuer.rdnSequence.?1" */ - _gnutls_int2str (k1, counter); - _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), asn1_rdn_name); - - if (strlen (tmpbuffer1) > 0) - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "."); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?"); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter); + if (asn1_rdn_name[0] != 0) + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", asn1_rdn_name, k1); + else + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1); len = sizeof (value) - 1; result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len); @@ -396,13 +387,10 @@ _gnutls_x509_parse_dn_oid (ASN1_TYPE asn1_struct, */ k2++; - _gnutls_int2str (k2, counter); - _gnutls_str_cpy (tmpbuffer2, sizeof (tmpbuffer2), tmpbuffer1); - - if (strlen (tmpbuffer2) > 0) - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "."); - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "?"); - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), counter); + if (tmpbuffer1[0] != 0) + snprintf( tmpbuffer2, sizeof (tmpbuffer2), "%s.?%u", tmpbuffer1, k2); + else + snprintf( tmpbuffer2, sizeof (tmpbuffer2), "?%u", k2); /* Try to read the RelativeDistinguishedName attributes. */ @@ -523,10 +511,9 @@ _gnutls_x509_get_dn_oid (ASN1_TYPE asn1_struct, int indx, void *_oid, size_t * sizeof_oid) { int k2, k1, result; - char tmpbuffer1[64]; - char tmpbuffer2[64]; - char tmpbuffer3[64]; - char counter[MAX_INT_DIGITS]; + char tmpbuffer1[MAX_NAME_SIZE]; + char tmpbuffer2[MAX_NAME_SIZE]; + char tmpbuffer3[MAX_NAME_SIZE]; char value[256]; char oid[128]; int len; @@ -539,13 +526,10 @@ _gnutls_x509_get_dn_oid (ASN1_TYPE asn1_struct, k1++; /* create a string like "tbsCertList.issuer.rdnSequence.?1" */ - _gnutls_int2str (k1, counter); - _gnutls_str_cpy (tmpbuffer1, sizeof (tmpbuffer1), asn1_rdn_name); - - if (strlen (tmpbuffer1) > 0) - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "."); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), "?"); - _gnutls_str_cat (tmpbuffer1, sizeof (tmpbuffer1), counter); + if (asn1_rdn_name[0] != 0) + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "%s.?%u", asn1_rdn_name, k1); + else + snprintf( tmpbuffer1, sizeof (tmpbuffer1), "?%u", k1); len = sizeof (value) - 1; result = asn1_read_value (asn1_struct, tmpbuffer1, value, &len); @@ -570,13 +554,10 @@ _gnutls_x509_get_dn_oid (ASN1_TYPE asn1_struct, */ k2++; - _gnutls_int2str (k2, counter); - _gnutls_str_cpy (tmpbuffer2, sizeof (tmpbuffer2), tmpbuffer1); - - if (strlen (tmpbuffer2) > 0) - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "."); - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), "?"); - _gnutls_str_cat (tmpbuffer2, sizeof (tmpbuffer2), counter); + if (tmpbuffer1[0] != 0) + snprintf( tmpbuffer2, sizeof (tmpbuffer2), "%s.?%u", tmpbuffer1, k2); + else + snprintf( tmpbuffer2, sizeof (tmpbuffer2), "?%u", k2); /* Try to read the RelativeDistinguishedName attributes. */ @@ -889,7 +870,7 @@ _gnutls_x509_set_dn_oid (ASN1_TYPE asn1_struct, int raw_flag, const char *name, int sizeof_name) { int result; - char tmp[64], asn1_rdn_name[64]; + char tmp[MAX_NAME_SIZE], asn1_rdn_name[MAX_NAME_SIZE]; if (sizeof_name == 0 || name == NULL) { diff --git a/lib/x509/extensions.c b/lib/x509/extensions.c index 461d7152f5..5b4ea985c7 100644 --- a/lib/x509/extensions.c +++ b/lib/x509/extensions.c @@ -49,7 +49,7 @@ _gnutls_x509_crt_get_extension (gnutls_x509_crt_t cert, gnutls_datum_t * ret, unsigned int *_critical) { int k, result, len; - char name[128], name2[128], counter[MAX_INT_DIGITS]; + char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE]; char str[1024]; char str_critical[10]; int critical = 0; @@ -65,9 +65,7 @@ _gnutls_x509_crt_get_extension (gnutls_x509_crt_t cert, { k++; - _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?"); - _gnutls_int2str (k, counter); - _gnutls_str_cat (name, sizeof (name), counter); + snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", k); len = sizeof (str) - 1; result = asn1_read_value (cert->cert, name, str, &len); @@ -181,7 +179,7 @@ _gnutls_x509_crt_get_extension_oid (gnutls_x509_crt_t cert, int indx, void *oid, size_t * sizeof_oid) { int k, result, len; - char name[128], name2[128], counter[MAX_INT_DIGITS]; + char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE]; char str[1024]; char extnID[128]; int indx_counter = 0; @@ -191,9 +189,7 @@ _gnutls_x509_crt_get_extension_oid (gnutls_x509_crt_t cert, { k++; - _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?"); - _gnutls_int2str (k, counter); - _gnutls_str_cat (name, sizeof (name), counter); + snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", k); len = sizeof (str) - 1; result = asn1_read_value (cert->cert, name, str, &len); @@ -327,13 +323,11 @@ static int overwrite_extension (ASN1_TYPE asn, unsigned int indx, const gnutls_datum_t * ext_data, unsigned int critical) { - char name[128], name2[128], counter[MAX_INT_DIGITS]; + char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE]; const char *str; int result; - _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?"); - _gnutls_int2str (indx, counter); - _gnutls_str_cat (name, sizeof (name), counter); + snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", indx); if (critical == 0) str = "FALSE"; @@ -376,7 +370,7 @@ _gnutls_x509_crt_set_extension (gnutls_x509_crt_t cert, { int result; int k, len; - char name[128], name2[128], counter[MAX_INT_DIGITS]; + char name[MAX_NAME_SIZE], name2[MAX_NAME_SIZE]; char extnID[128]; /* Find the index of the given extension. @@ -386,9 +380,7 @@ _gnutls_x509_crt_set_extension (gnutls_x509_crt_t cert, { k++; - _gnutls_str_cpy (name, sizeof (name), "tbsCertificate.extensions.?"); - _gnutls_int2str (k, counter); - _gnutls_str_cat (name, sizeof (name), counter); + snprintf( name, sizeof(name), "tbsCertificate.extensions.?%u", k); len = sizeof (extnID) - 1; result = asn1_read_value (cert->cert, name, extnID, &len); diff --git a/lib/x509/pkcs12.c b/lib/x509/pkcs12.c index c2c04a0544..4ebcf8f370 100644 --- a/lib/x509/pkcs12.c +++ b/lib/x509/pkcs12.c @@ -345,13 +345,12 @@ int _pkcs12_decode_safe_contents (const gnutls_datum_t * content, gnutls_pkcs12_bag_t bag) { - char oid[128], root[128]; + char oid[128], root[MAX_NAME_SIZE]; ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int len, result; int bag_type; gnutls_datum_t attr_val; int count = 0, i, attributes, j; - char counter[MAX_INT_DIGITS]; size_t size; /* Step 1. Extract the SEQUENCE. @@ -389,10 +388,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content, for (i = 0; i < bag->bag_elements; i++) { - _gnutls_str_cpy (root, sizeof (root), "?"); - _gnutls_int2str (i + 1, counter); - _gnutls_str_cat (root, sizeof (root), counter); - _gnutls_str_cat (root, sizeof (root), ".bagId"); + snprintf( root, sizeof (root), "?%u.bagId", i+1); len = sizeof (oid); result = asn1_read_value (c2, root, oid, &len); @@ -416,10 +412,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content, /* Read the Bag Value */ - _gnutls_str_cpy (root, sizeof (root), "?"); - _gnutls_int2str (i + 1, counter); - _gnutls_str_cat (root, sizeof (root), counter); - _gnutls_str_cat (root, sizeof (root), ".bagValue"); + snprintf( root, sizeof (root), "?%u.bagValue", i+1); result = _gnutls_x509_read_value (c2, root, &bag->element[i].data, 0); if (result < 0) @@ -445,10 +438,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content, /* read the bag attributes */ - _gnutls_str_cpy (root, sizeof (root), "?"); - _gnutls_int2str (i + 1, counter); - _gnutls_str_cat (root, sizeof (root), counter); - _gnutls_str_cat (root, sizeof (root), ".bagAttributes"); + snprintf( root, sizeof (root), "?%u.bagAttributes", i+1); result = asn1_number_of_elements (c2, root, &attributes); if (result != ASN1_SUCCESS && result != ASN1_ELEMENT_NOT_FOUND) @@ -465,12 +455,7 @@ _pkcs12_decode_safe_contents (const gnutls_datum_t * content, for (j = 0; j < attributes; j++) { - _gnutls_str_cpy (root, sizeof (root), "?"); - _gnutls_int2str (i + 1, counter); - _gnutls_str_cat (root, sizeof (root), counter); - _gnutls_str_cat (root, sizeof (root), ".bagAttributes.?"); - _gnutls_int2str (j + 1, counter); - _gnutls_str_cat (root, sizeof (root), counter); + snprintf( root, sizeof (root), "?%u.bagAttributes.?%u", i+1, j+1); result = _gnutls_x509_decode_and_read_attribute (c2, root, oid, @@ -599,9 +584,8 @@ gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12, { ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int result, len; - char root2[64]; + char root2[MAX_NAME_SIZE]; char oid[128]; - char counter[MAX_INT_DIGITS]; if (pkcs12 == NULL) { @@ -621,13 +605,9 @@ gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12, /* Step 2. Parse the AuthenticatedSafe */ - _gnutls_str_cpy (root2, sizeof (root2), "?"); - _gnutls_int2str (indx + 1, counter); - _gnutls_str_cat (root2, sizeof (root2), counter); - _gnutls_str_cat (root2, sizeof (root2), ".contentType"); + snprintf( root2, sizeof (root2), "?%u.contentType", indx+1); len = sizeof (oid) - 1; - result = asn1_read_value (c2, root2, oid, &len); if (result == ASN1_ELEMENT_NOT_FOUND) @@ -646,10 +626,7 @@ gnutls_pkcs12_get_bag (gnutls_pkcs12_t pkcs12, /* Not encrypted Bag */ - _gnutls_str_cpy (root2, sizeof (root2), "?"); - _gnutls_int2str (indx + 1, counter); - _gnutls_str_cat (root2, sizeof (root2), counter); - _gnutls_str_cat (root2, sizeof (root2), ".content"); + snprintf( root2, sizeof (root2), "?%u.content", indx+1); if (strcmp (oid, DATA_OID) == 0) { diff --git a/lib/x509/pkcs7.c b/lib/x509/pkcs7.c index fe7823bb31..97a97cc82a 100644 --- a/lib/x509/pkcs7.c +++ b/lib/x509/pkcs7.c @@ -282,9 +282,8 @@ gnutls_pkcs7_get_crt_raw (gnutls_pkcs7_t pkcs7, { ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int result, len; - char root2[64]; + char root2[MAX_NAME_SIZE]; char oid[128]; - char counter[MAX_INT_DIGITS]; gnutls_datum_t tmp = { NULL, 0 }; if (certificate_size == NULL || pkcs7 == NULL) @@ -302,9 +301,7 @@ gnutls_pkcs7_get_crt_raw (gnutls_pkcs7_t pkcs7, /* Step 2. Parse the CertificateSet */ - _gnutls_str_cpy (root2, sizeof (root2), "certificates.?"); - _gnutls_int2str (indx + 1, counter); - _gnutls_str_cat (root2, sizeof (root2), counter); + snprintf( root2, sizeof(root2), "certificates.?%u", indx+1); len = sizeof (oid) - 1; @@ -672,8 +669,7 @@ gnutls_pkcs7_delete_crt (gnutls_pkcs7_t pkcs7, int indx) { ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int result; - char counter[MAX_INT_DIGITS]; - char root2[64]; + char root2[MAX_NAME_SIZE]; if (pkcs7 == NULL) return GNUTLS_E_INVALID_REQUEST; @@ -690,9 +686,7 @@ gnutls_pkcs7_delete_crt (gnutls_pkcs7_t pkcs7, int indx) /* Step 2. Delete the certificate. */ - _gnutls_str_cpy (root2, sizeof (root2), "certificates.?"); - _gnutls_int2str (indx + 1, counter); - _gnutls_str_cat (root2, sizeof (root2), counter); + snprintf( root2, sizeof(root2), "certificates.?%u", indx+1); result = asn1_write_value (c2, root2, NULL, 0); if (result != ASN1_SUCCESS) @@ -746,8 +740,7 @@ gnutls_pkcs7_get_crl_raw (gnutls_pkcs7_t pkcs7, { ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int result; - char root2[64]; - char counter[MAX_INT_DIGITS]; + char root2[MAX_NAME_SIZE]; gnutls_datum_t tmp = { NULL, 0 }; int start, end; @@ -766,10 +759,7 @@ gnutls_pkcs7_get_crl_raw (gnutls_pkcs7_t pkcs7, /* Step 2. Parse the CertificateSet */ - _gnutls_str_cpy (root2, sizeof (root2), "crls.?"); - _gnutls_int2str (indx + 1, counter); - _gnutls_str_cat (root2, sizeof (root2), counter); - + snprintf( root2, sizeof(root2), "crls.?%u", indx+1); /* Get the raw CRL */ @@ -984,8 +974,7 @@ gnutls_pkcs7_delete_crl (gnutls_pkcs7_t pkcs7, int indx) { ASN1_TYPE c2 = ASN1_TYPE_EMPTY; int result; - char counter[MAX_INT_DIGITS]; - char root2[64]; + char root2[MAX_NAME_SIZE]; if (pkcs7 == NULL) return GNUTLS_E_INVALID_REQUEST; @@ -1002,9 +991,7 @@ gnutls_pkcs7_delete_crl (gnutls_pkcs7_t pkcs7, int indx) /* Step 2. Delete the crl. */ - _gnutls_str_cpy (root2, sizeof (root2), "crls.?"); - _gnutls_int2str (indx + 1, counter); - _gnutls_str_cat (root2, sizeof (root2), counter); + snprintf( root2, sizeof(root2), "crls.?%u", indx+1); result = asn1_write_value (c2, root2, NULL, 0); if (result != ASN1_SUCCESS) diff --git a/lib/x509/x509.c b/lib/x509/x509.c index db8f7d3b50..6dd840e680 100644 --- a/lib/x509/x509.c +++ b/lib/x509/x509.c @@ -838,22 +838,18 @@ parse_general_name (ASN1_TYPE src, const char *src_name, int seq, void *name, size_t * name_size) { int len; - char num[MAX_INT_DIGITS]; - char nptr[128]; + char nptr[MAX_NAME_SIZE]; int result; opaque choice_type[128]; gnutls_x509_subject_alt_name_t type; seq++; /* 0->1, 1->2 etc */ - _gnutls_int2str (seq, num); - - _gnutls_str_cpy (nptr, sizeof (nptr), src_name); - if (src_name[0] != 0) - _gnutls_str_cat (nptr, sizeof (nptr), "."); - - _gnutls_str_cat (nptr, sizeof (nptr), "?"); - _gnutls_str_cat (nptr, sizeof (nptr), num); + if ( src_name[0] != 0) + snprintf( nptr, sizeof(nptr), "%s.?%u", src_name, seq); + else + snprintf( nptr, sizeof(nptr), "?%u", seq); + len = sizeof (choice_type); result = asn1_read_value (src, nptr, choice_type, &len); @@ -1698,7 +1694,7 @@ gnutls_x509_crt_get_crl_dist_points (gnutls_x509_crt_t cert, int result; gnutls_datum_t dist_points = { NULL, 0 }; ASN1_TYPE c2 = ASN1_TYPE_EMPTY; - char name[128]; + char name[MAX_NAME_SIZE]; int len; gnutls_x509_subject_alt_name_t type; uint8_t reasons[2]; @@ -1769,8 +1765,8 @@ gnutls_x509_crt_get_crl_dist_points (gnutls_x509_crt_t cert, */ if (reason_flags) { - _gnutls_str_cpy (name, sizeof (name), "?1.reasons"); - + _gnutls_str_cpy( name, sizeof(name), "?1.reasons"); + reasons[0] = reasons[1] = 0; len = sizeof (reasons); @@ -1813,8 +1809,7 @@ gnutls_x509_crt_get_key_purpose_oid (gnutls_x509_crt_t cert, int indx, void *oid, size_t * sizeof_oid, unsigned int *critical) { - char counter[MAX_INT_DIGITS]; - char tmpstr[64]; + char tmpstr[MAX_NAME_SIZE]; int result, len; gnutls_datum_t id; ASN1_TYPE c2 = ASN1_TYPE_EMPTY; @@ -1865,9 +1860,7 @@ gnutls_x509_crt_get_key_purpose_oid (gnutls_x509_crt_t cert, indx++; /* create a string like "?1" */ - _gnutls_int2str (indx, counter); - _gnutls_str_cpy (tmpstr, sizeof (tmpstr), "?"); - _gnutls_str_cat (tmpstr, sizeof (tmpstr), counter); + snprintf( tmpstr, sizeof(tmpstr), "?%u", indx); len = *sizeof_oid; result = asn1_read_value (c2, tmpstr, oid, &len); |