diff options
| author | djm <> | 2010-10-01 22:54:21 +0000 |
|---|---|---|
| committer | djm <> | 2010-10-01 22:54:21 +0000 |
| commit | 829fd51d4f8dde4a7f3bf54754f3c1d1a502f5e2 (patch) | |
| tree | e03b9f1bd051e844b971936729e9df549a209130 /src/lib/libcrypto/buffer/buffer.c | |
| parent | e6b755d2a53d3cac7a344dfdd6bf7c951cac754c (diff) | |
| download | openbsd-829fd51d4f8dde4a7f3bf54754f3c1d1a502f5e2.tar.gz openbsd-829fd51d4f8dde4a7f3bf54754f3c1d1a502f5e2.tar.bz2 openbsd-829fd51d4f8dde4a7f3bf54754f3c1d1a502f5e2.zip | |
import OpenSSL-1.0.0a
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/buffer/buffer.c | 89 |
1 files changed, 85 insertions, 4 deletions
diff --git a/src/lib/libcrypto/buffer/buffer.c b/src/lib/libcrypto/buffer/buffer.c index b3e947771d..620ea8d536 100644 --- a/src/lib/libcrypto/buffer/buffer.c +++ b/src/lib/libcrypto/buffer/buffer.c | |||
| @@ -89,10 +89,10 @@ void BUF_MEM_free(BUF_MEM *a) | |||
| 89 | OPENSSL_free(a); | 89 | OPENSSL_free(a); |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | int BUF_MEM_grow(BUF_MEM *str, int len) | 92 | int BUF_MEM_grow(BUF_MEM *str, size_t len) |
| 93 | { | 93 | { |
| 94 | char *ret; | 94 | char *ret; |
| 95 | unsigned int n; | 95 | size_t n; |
| 96 | 96 | ||
| 97 | if (str->length >= len) | 97 | if (str->length >= len) |
| 98 | { | 98 | { |
| @@ -125,10 +125,10 @@ int BUF_MEM_grow(BUF_MEM *str, int len) | |||
| 125 | return(len); | 125 | return(len); |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | int BUF_MEM_grow_clean(BUF_MEM *str, int len) | 128 | int BUF_MEM_grow_clean(BUF_MEM *str, size_t len) |
| 129 | { | 129 | { |
| 130 | char *ret; | 130 | char *ret; |
| 131 | unsigned int n; | 131 | size_t n; |
| 132 | 132 | ||
| 133 | if (str->length >= len) | 133 | if (str->length >= len) |
| 134 | { | 134 | { |
| @@ -161,3 +161,84 @@ int BUF_MEM_grow_clean(BUF_MEM *str, int len) | |||
| 161 | } | 161 | } |
| 162 | return(len); | 162 | return(len); |
| 163 | } | 163 | } |
| 164 | |||
| 165 | char *BUF_strdup(const char *str) | ||
| 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 | { | ||
| 173 | char *ret; | ||
| 174 | |||
| 175 | if (str == NULL) return(NULL); | ||
| 176 | |||
| 177 | ret=OPENSSL_malloc(siz+1); | ||
| 178 | if (ret == NULL) | ||
| 179 | { | ||
| 180 | BUFerr(BUF_F_BUF_STRNDUP,ERR_R_MALLOC_FAILURE); | ||
| 181 | return(NULL); | ||
| 182 | } | ||
| 183 | BUF_strlcpy(ret,str,siz+1); | ||
| 184 | return(ret); | ||
| 185 | } | ||
| 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 | |||
| 202 | size_t BUF_strlcpy(char *dst, const char *src, size_t size) | ||
| 203 | { | ||
| 204 | size_t l = 0; | ||
| 205 | for(; size > 1 && *src; size--) | ||
| 206 | { | ||
| 207 | *dst++ = *src++; | ||
| 208 | l++; | ||
| 209 | } | ||
| 210 | if (size) | ||
| 211 | *dst = '\0'; | ||
| 212 | return l + strlen(src); | ||
| 213 | } | ||
| 214 | |||
| 215 | size_t BUF_strlcat(char *dst, const char *src, size_t size) | ||
| 216 | { | ||
| 217 | size_t l = 0; | ||
| 218 | for(; size > 0 && *dst; size--, dst++) | ||
| 219 | l++; | ||
| 220 | return l + BUF_strlcpy(dst, src, size); | ||
| 221 | } | ||
| 222 | |||
| 223 | void BUF_reverse(unsigned char *out, unsigned char *in, size_t size) | ||
| 224 | { | ||
| 225 | size_t i; | ||
| 226 | if (in) | ||
| 227 | { | ||
| 228 | out += size - 1; | ||
| 229 | for (i = 0; i < size; i++) | ||
| 230 | *in++ = *out--; | ||
| 231 | } | ||
| 232 | else | ||
| 233 | { | ||
| 234 | unsigned char *q; | ||
| 235 | char c; | ||
| 236 | q = out + size - 1; | ||
| 237 | for (i = 0; i < size/2; i++) | ||
| 238 | { | ||
| 239 | c = *q; | ||
| 240 | *q-- = *out; | ||
| 241 | *out++ = c; | ||
| 242 | } | ||
| 243 | } | ||
| 244 | } | ||
