diff options
author | tedu <> | 2014-05-17 20:15:50 +0000 |
---|---|---|
committer | tedu <> | 2014-05-17 20:15:50 +0000 |
commit | 88d4a887ed59997cde7677f3860175595d598afb (patch) | |
tree | b3fb5bd0d1c2847a20b197d6c55edb23bb7d53e3 /src | |
parent | 3ac66fc5ba6938da3d7c685d1c30063ed4857da1 (diff) | |
download | openbsd-88d4a887ed59997cde7677f3860175595d598afb.tar.gz openbsd-88d4a887ed59997cde7677f3860175595d598afb.tar.bz2 openbsd-88d4a887ed59997cde7677f3860175595d598afb.zip |
does sunos not have memmove? sorry, i guess sunos will not have libressl.
ok guenther miod
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/stack/stack.c | 24 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/stack/stack.c | 24 |
2 files changed, 6 insertions, 42 deletions
diff --git a/src/lib/libcrypto/stack/stack.c b/src/lib/libcrypto/stack/stack.c index 0224bfce74..e50967a0f1 100644 --- a/src/lib/libcrypto/stack/stack.c +++ b/src/lib/libcrypto/stack/stack.c | |||
@@ -163,19 +163,8 @@ sk_insert(_STACK *st, void *data, int loc) | |||
163 | if ((loc >= (int)st->num) || (loc < 0)) | 163 | if ((loc >= (int)st->num) || (loc < 0)) |
164 | st->data[st->num] = data; | 164 | st->data[st->num] = data; |
165 | else { | 165 | else { |
166 | int i; | 166 | memmove(&(st->data[loc + 1]), &(st->data[loc]), |
167 | char **f, **t; | ||
168 | |||
169 | f = st->data; | ||
170 | t = &(st->data[1]); | ||
171 | for (i = st->num; i >= loc; i--) | ||
172 | t[i] = f[i]; | ||
173 | |||
174 | #ifdef undef /* no memmove on sunos :-( */ | ||
175 | memmove(&(st->data[loc + 1]), | ||
176 | &(st->data[loc]), | ||
177 | sizeof(char *)*(st->num - loc)); | 167 | sizeof(char *)*(st->num - loc)); |
178 | #endif | ||
179 | st->data[loc] = data; | 168 | st->data[loc] = data; |
180 | } | 169 | } |
181 | st->num++; | 170 | st->num++; |
@@ -198,21 +187,14 @@ void * | |||
198 | sk_delete(_STACK *st, int loc) | 187 | sk_delete(_STACK *st, int loc) |
199 | { | 188 | { |
200 | char *ret; | 189 | char *ret; |
201 | int i, j; | ||
202 | 190 | ||
203 | if (!st || (loc < 0) || (loc >= st->num)) | 191 | if (!st || (loc < 0) || (loc >= st->num)) |
204 | return NULL; | 192 | return NULL; |
205 | 193 | ||
206 | ret = st->data[loc]; | 194 | ret = st->data[loc]; |
207 | if (loc != st->num - 1) { | 195 | if (loc != st->num - 1) { |
208 | j = st->num - 1; | 196 | memmove(&(st->data[loc]), &(st->data[loc + 1]), |
209 | for (i = loc; i < j; i++) | 197 | sizeof(char *)*(st->num - 1 - loc)); |
210 | st->data[i] = st->data[i + 1]; | ||
211 | /* In theory memcpy is not safe for this | ||
212 | * memcpy( &(st->data[loc]), | ||
213 | * &(st->data[loc+1]), | ||
214 | * sizeof(char *)*(st->num-loc-1)); | ||
215 | */ | ||
216 | } | 198 | } |
217 | st->num--; | 199 | st->num--; |
218 | return (ret); | 200 | return (ret); |
diff --git a/src/lib/libssl/src/crypto/stack/stack.c b/src/lib/libssl/src/crypto/stack/stack.c index 0224bfce74..e50967a0f1 100644 --- a/src/lib/libssl/src/crypto/stack/stack.c +++ b/src/lib/libssl/src/crypto/stack/stack.c | |||
@@ -163,19 +163,8 @@ sk_insert(_STACK *st, void *data, int loc) | |||
163 | if ((loc >= (int)st->num) || (loc < 0)) | 163 | if ((loc >= (int)st->num) || (loc < 0)) |
164 | st->data[st->num] = data; | 164 | st->data[st->num] = data; |
165 | else { | 165 | else { |
166 | int i; | 166 | memmove(&(st->data[loc + 1]), &(st->data[loc]), |
167 | char **f, **t; | ||
168 | |||
169 | f = st->data; | ||
170 | t = &(st->data[1]); | ||
171 | for (i = st->num; i >= loc; i--) | ||
172 | t[i] = f[i]; | ||
173 | |||
174 | #ifdef undef /* no memmove on sunos :-( */ | ||
175 | memmove(&(st->data[loc + 1]), | ||
176 | &(st->data[loc]), | ||
177 | sizeof(char *)*(st->num - loc)); | 167 | sizeof(char *)*(st->num - loc)); |
178 | #endif | ||
179 | st->data[loc] = data; | 168 | st->data[loc] = data; |
180 | } | 169 | } |
181 | st->num++; | 170 | st->num++; |
@@ -198,21 +187,14 @@ void * | |||
198 | sk_delete(_STACK *st, int loc) | 187 | sk_delete(_STACK *st, int loc) |
199 | { | 188 | { |
200 | char *ret; | 189 | char *ret; |
201 | int i, j; | ||
202 | 190 | ||
203 | if (!st || (loc < 0) || (loc >= st->num)) | 191 | if (!st || (loc < 0) || (loc >= st->num)) |
204 | return NULL; | 192 | return NULL; |
205 | 193 | ||
206 | ret = st->data[loc]; | 194 | ret = st->data[loc]; |
207 | if (loc != st->num - 1) { | 195 | if (loc != st->num - 1) { |
208 | j = st->num - 1; | 196 | memmove(&(st->data[loc]), &(st->data[loc + 1]), |
209 | for (i = loc; i < j; i++) | 197 | sizeof(char *)*(st->num - 1 - loc)); |
210 | st->data[i] = st->data[i + 1]; | ||
211 | /* In theory memcpy is not safe for this | ||
212 | * memcpy( &(st->data[loc]), | ||
213 | * &(st->data[loc+1]), | ||
214 | * sizeof(char *)*(st->num-loc-1)); | ||
215 | */ | ||
216 | } | 198 | } |
217 | st->num--; | 199 | st->num--; |
218 | return (ret); | 200 | return (ret); |