diff options
author | ben <ben> | 1999-01-07 19:15:15 +0000 |
---|---|---|
committer | ben <ben> | 1999-01-07 19:15:15 +0000 |
commit | e28faca04f64817bcb92cc0047fb31b42e294191 (patch) | |
tree | b9242ab8cccfca1d64bead19939a3ce2ebac09b8 /crypto/buffer | |
parent | ef282c5f3adf1a29ca7c28a54bc0dd3e4e2790d9 (diff) | |
download | openssl-e28faca04f64817bcb92cc0047fb31b42e294191.tar.gz |
Accept NULL in *_free.
Diffstat (limited to 'crypto/buffer')
-rw-r--r-- | crypto/buffer/buffer.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/crypto/buffer/buffer.c b/crypto/buffer/buffer.c index df7e2fad2..b160a74a4 100644 --- a/crypto/buffer/buffer.c +++ b/crypto/buffer/buffer.c @@ -1,5 +1,5 @@ /* crypto/buffer/buffer.c */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) * All rights reserved. * * This package is an SSL implementation written @@ -79,6 +79,9 @@ BUF_MEM *BUF_MEM_new() void BUF_MEM_free(a) BUF_MEM *a; { + if(a == NULL) + return; + if (a->data != NULL) { memset(a->data,0,(unsigned int)a->max); @@ -94,7 +97,11 @@ int len; char *ret; unsigned int n; - if (str->length >= len) return(len); + if (str->length >= len) + { + str->length=len; + return(len); + } if (str->max >= len) { memset(&(str->data[str->length]),0,len-str->length); @@ -126,6 +133,8 @@ char *str; char *ret; int n; + if (str == NULL) return(NULL); + n=strlen(str); ret=Malloc(n+1); if (ret == NULL) |