summaryrefslogtreecommitdiffstats
path: root/lib/libssl/src
diff options
context:
space:
mode:
authorbeck <beck@openbsd.org>2014-10-16 03:19:02 +0000
committerbeck <beck@openbsd.org>2014-10-16 03:19:02 +0000
commit34b64b5c5f840a0833b4f7f456b67d326d45eda4 (patch)
tree41855d279b6c6cf41094db11fa97c89519607059 /lib/libssl/src
parentUse reallocarray() to get integer overflow detection. (diff)
downloadwireguard-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.h7
-rw-r--r--lib/libssl/src/crypto/store/str_lib.c4
-rw-r--r--lib/libssl/src/crypto/x509/x509_trs.c5
-rw-r--r--lib/libssl/src/ssl/ssl_asn1.c4
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;