diff options
author | 2014-10-16 03:19:02 +0000 | |
---|---|---|
committer | 2014-10-16 03:19:02 +0000 | |
commit | 34b64b5c5f840a0833b4f7f456b67d326d45eda4 (patch) | |
tree | 41855d279b6c6cf41094db11fa97c89519607059 /lib/libssl/src | |
parent | Use reallocarray() to get integer overflow detection. (diff) | |
download | wireguard-openbsd-34b64b5c5f840a0833b4f7f456b67d326d45eda4.tar.xz wireguard-openbsd-34b64b5c5f840a0833b4f7f456b67d326d45eda4.zip |
Get rid of the last remaining BUF_strdup and BUF_strlcpy and friends, use
intrinsic functions everywhere, and wrap these functions in an
#ifndef LIBRESSL_INTERNAL to make sure we don't bring their use back.
Diffstat (limited to 'lib/libssl/src')
-rw-r--r-- | lib/libssl/src/crypto/buffer/buffer.h | 7 | ||||
-rw-r--r-- | lib/libssl/src/crypto/store/str_lib.c | 4 | ||||
-rw-r--r-- | lib/libssl/src/crypto/x509/x509_trs.c | 5 | ||||
-rw-r--r-- | lib/libssl/src/ssl/ssl_asn1.c | 4 |
4 files changed, 12 insertions, 8 deletions
diff --git a/lib/libssl/src/crypto/buffer/buffer.h b/lib/libssl/src/crypto/buffer/buffer.h index def1943d319..5aa0e3ea474 100644 --- a/lib/libssl/src/crypto/buffer/buffer.h +++ b/lib/libssl/src/crypto/buffer/buffer.h @@ -1,4 +1,4 @@ -/* $OpenBSD: buffer.h,v 1.13 2014/07/13 14:13:27 beck Exp $ */ +/* $OpenBSD: buffer.h,v 1.14 2014/10/16 03:19:02 beck Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -84,17 +84,20 @@ BUF_MEM *BUF_MEM_new(void); void BUF_MEM_free(BUF_MEM *a); int BUF_MEM_grow(BUF_MEM *str, size_t len); int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); +#ifndef LIBRESSL_INTERNAL char * BUF_strdup(const char *str); char * BUF_strndup(const char *str, size_t siz); +#endif void * BUF_memdup(const void *data, size_t siz); void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); +#ifndef LIBRESSL_INTERNAL /* safe string functions */ size_t BUF_strlcpy(char *dst, const char *src, size_t siz) __attribute__ ((__bounded__(__string__,1,3))); size_t BUF_strlcat(char *dst, const char *src, size_t siz) __attribute__ ((__bounded__(__string__,1,3))); - +#endif /* BEGIN ERROR CODES */ /* The following lines are auto generated by the script mkerr.pl. Any changes diff --git a/lib/libssl/src/crypto/store/str_lib.c b/lib/libssl/src/crypto/store/str_lib.c index ff00aa19ce0..9ae93b64057 100644 --- a/lib/libssl/src/crypto/store/str_lib.c +++ b/lib/libssl/src/crypto/store/str_lib.c @@ -1,4 +1,4 @@ -/* $OpenBSD: str_lib.c,v 1.10 2014/07/10 22:45:58 jsing Exp $ */ +/* $OpenBSD: str_lib.c,v 1.11 2014/10/16 03:19:02 beck Exp $ */ /* Written by Richard Levitte (richard@levitte.org) for the OpenSSL * project 2003. */ @@ -1341,7 +1341,7 @@ STORE_ATTR_INFO_set_cstr(STORE_ATTR_INFO *attrs, STORE_ATTR_TYPES code, return 0; } if (!ATTR_IS_SET(attrs, code)) { - if ((attrs->values[code].cstring = BUF_strndup(cstr, cstr_size))) + if (cstr && (attrs->values[code].cstring = strndup(cstr, cstr_size))) return 1; STOREerr(STORE_F_STORE_ATTR_INFO_SET_CSTR, ERR_R_MALLOC_FAILURE); diff --git a/lib/libssl/src/crypto/x509/x509_trs.c b/lib/libssl/src/crypto/x509/x509_trs.c index 544fb5e8845..d4e6be65e6e 100644 --- a/lib/libssl/src/crypto/x509/x509_trs.c +++ b/lib/libssl/src/crypto/x509/x509_trs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: x509_trs.c,v 1.16 2014/09/28 10:52:59 miod Exp $ */ +/* $OpenBSD: x509_trs.c,v 1.17 2014/10/16 03:19:02 beck Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project 1999. */ @@ -57,6 +57,7 @@ */ #include <stdio.h> +#include <string.h> #include <openssl/err.h> #include <openssl/x509v3.h> @@ -202,7 +203,7 @@ X509_TRUST_add(int id, int flags, int (*ck)(X509_TRUST *, X509 *, int), if (trtmp->flags & X509_TRUST_DYNAMIC_NAME) free(trtmp->name); /* dup supplied name */ - if ((trtmp->name = BUF_strdup(name)) == NULL) + if (name == NULL || (trtmp->name = strdup(name)) == NULL) goto err; /* Keep the dynamic flag of existing entry */ trtmp->flags &= X509_TRUST_DYNAMIC; diff --git a/lib/libssl/src/ssl/ssl_asn1.c b/lib/libssl/src/ssl/ssl_asn1.c index 627acbf5b07..8dc24d52839 100644 --- a/lib/libssl/src/ssl/ssl_asn1.c +++ b/lib/libssl/src/ssl/ssl_asn1.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssl_asn1.c,v 1.37 2014/07/13 23:34:39 jsing Exp $ */ +/* $OpenBSD: ssl_asn1.c,v 1.38 2014/10/16 03:19:02 beck Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -585,7 +585,7 @@ d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length) c.slen -= (c.p - c.q); } if (os.data) { - ret->tlsext_hostname = BUF_strndup((char *)os.data, os.length); + ret->tlsext_hostname = strndup((char *)os.data, os.length); free(os.data); os.data = NULL; os.length = 0; |