From b9058e3a0925c64cba4c450d054e5f8818edfb17 Mon Sep 17 00:00:00 2001 From: miod <> Date: Mon, 29 Sep 2014 04:17:24 +0000 Subject: X509_NAME_get_text_by_OBJ(): make sure we do not pass a negative size to memcpy(). ok bcook@ --- src/lib/libcrypto/x509/x509name.c | 8 +++++--- src/lib/libssl/src/crypto/x509/x509name.c | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src/lib') diff --git a/src/lib/libcrypto/x509/x509name.c b/src/lib/libcrypto/x509/x509name.c index 465a1cadb5..14634013cf 100644 --- a/src/lib/libcrypto/x509/x509name.c +++ b/src/lib/libcrypto/x509/x509name.c @@ -1,4 +1,4 @@ -/* $OpenBSD: x509name.c,v 1.12 2014/07/11 08:44:49 jsing Exp $ */ +/* $OpenBSD: x509name.c,v 1.13 2014/09/29 04:17:24 miod Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -91,8 +91,10 @@ X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, char *buf, i = (data->length > (len - 1)) ? (len - 1) : data->length; if (buf == NULL) return (data->length); - memcpy(buf, data->data, i); - buf[i] = '\0'; + if (i >= 0) { + memcpy(buf, data->data, i); + buf[i] = '\0'; + } return (i); } diff --git a/src/lib/libssl/src/crypto/x509/x509name.c b/src/lib/libssl/src/crypto/x509/x509name.c index 465a1cadb5..14634013cf 100644 --- a/src/lib/libssl/src/crypto/x509/x509name.c +++ b/src/lib/libssl/src/crypto/x509/x509name.c @@ -1,4 +1,4 @@ -/* $OpenBSD: x509name.c,v 1.12 2014/07/11 08:44:49 jsing Exp $ */ +/* $OpenBSD: x509name.c,v 1.13 2014/09/29 04:17:24 miod Exp $ */ /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * @@ -91,8 +91,10 @@ X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, char *buf, i = (data->length > (len - 1)) ? (len - 1) : data->length; if (buf == NULL) return (data->length); - memcpy(buf, data->data, i); - buf[i] = '\0'; + if (i >= 0) { + memcpy(buf, data->data, i); + buf[i] = '\0'; + } return (i); } -- cgit v1.2.3-55-g6feb