sunos doesn't have memmove? I guess sunos won't have libressl. Index: stack.c =================================================================== RCS file: /cvs/src/lib/libssl/src/crypto/stack/stack.c,v retrieving revision 1.11 diff -u -p -r1.11 stack.c --- stack.c 17 May 2014 17:35:04 -0000 1.11 +++ stack.c 17 May 2014 17:39:28 -0000 @@ -163,19 +163,9 @@ sk_insert(_STACK *st, void *data, int lo 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]), sizeof(char *)*(st->num - loc)); -#endif st->data[loc] = data; } st->num++; @@ -198,21 +188,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-loc-1)); } st->num--; return (ret);