lsearch(3): append key to array with memmove(3) instead of memcpy(3)
authorcheloha <cheloha@openbsd.org>
Tue, 7 Dec 2021 04:01:45 +0000 (04:01 +0000)
committercheloha <cheloha@openbsd.org>
Tue, 7 Dec 2021 04:01:45 +0000 (04:01 +0000)
commit087b84e25df1d42f7e60c4322b1cbdd5c384c8f9
treea7fb4867c0b2d44ea6d846c861853c61bcec4d7d
parentfb8fafb408372c525bdd2dab4215b1116dbf5fb8
lsearch(3): append key to array with memmove(3) instead of memcpy(3)

If the key overlaps the end of the array, memcpy(3) mutates the key
and copies a corrupted value into the end of the array.

If we use memmove(3) instead we at least end up with a clean copy of
the key at the end of the array.  This is closer to the intended
behavior.

With input from millert@ and deraadt@.

Thread: https://marc.info/?l=openbsd-tech&m=163880307403606&w=2

ok millert@
lib/libc/stdlib/lsearch.c