diff options
author | djm <> | 2008-09-06 12:15:56 +0000 |
---|---|---|
committer | djm <> | 2008-09-06 12:15:56 +0000 |
commit | 5a3c0a05c7f2c5d3c584b7c8d6aec836dd724c80 (patch) | |
tree | aba68249883aa9d2361d92eef69a81d0c4961732 /src/lib/libcrypto/buffer/buffer.c | |
parent | f6198d4d0ab97685dc56be2d48715ed39fcc74b9 (diff) | |
download | openbsd-5a3c0a05c7f2c5d3c584b7c8d6aec836dd724c80.tar.gz openbsd-5a3c0a05c7f2c5d3c584b7c8d6aec836dd724c80.tar.bz2 openbsd-5a3c0a05c7f2c5d3c584b7c8d6aec836dd724c80.zip |
import of OpenSSL 0.9.8h
Diffstat (limited to 'src/lib/libcrypto/buffer/buffer.c')
-rw-r--r-- | src/lib/libcrypto/buffer/buffer.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/lib/libcrypto/buffer/buffer.c b/src/lib/libcrypto/buffer/buffer.c index d96487e7db..3bf03c7eff 100644 --- a/src/lib/libcrypto/buffer/buffer.c +++ b/src/lib/libcrypto/buffer/buffer.c | |||
@@ -149,7 +149,7 @@ int BUF_MEM_grow_clean(BUF_MEM *str, int len) | |||
149 | ret=OPENSSL_realloc_clean(str->data,str->max,n); | 149 | ret=OPENSSL_realloc_clean(str->data,str->max,n); |
150 | if (ret == NULL) | 150 | if (ret == NULL) |
151 | { | 151 | { |
152 | BUFerr(BUF_F_BUF_MEM_GROW,ERR_R_MALLOC_FAILURE); | 152 | BUFerr(BUF_F_BUF_MEM_GROW_CLEAN,ERR_R_MALLOC_FAILURE); |
153 | len=0; | 153 | len=0; |
154 | } | 154 | } |
155 | else | 155 | else |
@@ -164,22 +164,41 @@ int BUF_MEM_grow_clean(BUF_MEM *str, int len) | |||
164 | 164 | ||
165 | char *BUF_strdup(const char *str) | 165 | char *BUF_strdup(const char *str) |
166 | { | 166 | { |
167 | if (str == NULL) return(NULL); | ||
168 | return BUF_strndup(str, strlen(str)); | ||
169 | } | ||
170 | |||
171 | char *BUF_strndup(const char *str, size_t siz) | ||
172 | { | ||
167 | char *ret; | 173 | char *ret; |
168 | int n; | ||
169 | 174 | ||
170 | if (str == NULL) return(NULL); | 175 | if (str == NULL) return(NULL); |
171 | 176 | ||
172 | n=strlen(str); | 177 | ret=OPENSSL_malloc(siz+1); |
173 | ret=OPENSSL_malloc(n+1); | ||
174 | if (ret == NULL) | 178 | if (ret == NULL) |
175 | { | 179 | { |
176 | BUFerr(BUF_F_BUF_STRDUP,ERR_R_MALLOC_FAILURE); | 180 | BUFerr(BUF_F_BUF_STRNDUP,ERR_R_MALLOC_FAILURE); |
177 | return(NULL); | 181 | return(NULL); |
178 | } | 182 | } |
179 | memcpy(ret,str,n+1); | 183 | BUF_strlcpy(ret,str,siz+1); |
180 | return(ret); | 184 | return(ret); |
181 | } | 185 | } |
182 | 186 | ||
187 | void *BUF_memdup(const void *data, size_t siz) | ||
188 | { | ||
189 | void *ret; | ||
190 | |||
191 | if (data == NULL) return(NULL); | ||
192 | |||
193 | ret=OPENSSL_malloc(siz); | ||
194 | if (ret == NULL) | ||
195 | { | ||
196 | BUFerr(BUF_F_BUF_MEMDUP,ERR_R_MALLOC_FAILURE); | ||
197 | return(NULL); | ||
198 | } | ||
199 | return memcpy(ret, data, siz); | ||
200 | } | ||
201 | |||
183 | size_t BUF_strlcpy(char *dst, const char *src, size_t size) | 202 | size_t BUF_strlcpy(char *dst, const char *src, size_t size) |
184 | { | 203 | { |
185 | size_t l = 0; | 204 | size_t l = 0; |