diff options
author | Ted Unangst <tedu@cvs.openbsd.org> | 2014-05-17 20:15:51 +0000 |
---|---|---|
committer | Ted Unangst <tedu@cvs.openbsd.org> | 2014-05-17 20:15:51 +0000 |
commit | 4447c131b9d7ebdab3e4eb6c089d8bb8a6047943 (patch) | |
tree | c5fc6dedf5e1f067badb9f62fda98596260ea443 /lib | |
parent | 77a107a5561c1c37b91e967b8460d7679cd1282c (diff) |
does sunos not have memmove? sorry, i guess sunos will not have libressl.
ok guenther miod
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libssl/src/crypto/stack/stack.c | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/lib/libssl/src/crypto/stack/stack.c b/lib/libssl/src/crypto/stack/stack.c index 0224bfce745..e50967a0f1f 100644 --- a/lib/libssl/src/crypto/stack/stack.c +++ b/lib/libssl/src/crypto/stack/stack.c @@ -163,19 +163,8 @@ sk_insert(_STACK *st, void *data, int loc) if ((loc >= (int)st->num) || (loc < 0)) st->data[st->num] = data; else { - int i; - char **f, **t; - - f = st->data; - t = &(st->data[1]); - for (i = st->num; i >= loc; i--) - t[i] = f[i]; - -#ifdef undef /* no memmove on sunos :-( */ - memmove(&(st->data[loc + 1]), - &(st->data[loc]), + memmove(&(st->data[loc + 1]), &(st->data[loc]), sizeof(char *)*(st->num - loc)); -#endif st->data[loc] = data; } st->num++; @@ -198,21 +187,14 @@ void * sk_delete(_STACK *st, int loc) { char *ret; - int i, j; if (!st || (loc < 0) || (loc >= st->num)) return NULL; ret = st->data[loc]; if (loc != st->num - 1) { - j = st->num - 1; - for (i = loc; i < j; i++) - st->data[i] = st->data[i + 1]; - /* In theory memcpy is not safe for this - * memcpy( &(st->data[loc]), - * &(st->data[loc+1]), - * sizeof(char *)*(st->num-loc-1)); - */ + memmove(&(st->data[loc]), &(st->data[loc + 1]), + sizeof(char *)*(st->num - 1 - loc)); } st->num--; return (ret); |