Messages in this thread | | | Date | Fri, 22 Apr 2016 15:01:46 -0700 | Subject | Re: [tip:x86/boot] x86/boot: Make memcpy() handle overlaps | From | Kees Cook <> |
| |
On Fri, Apr 22, 2016 at 2:05 PM, Lasse Collin <lasse.collin@tukaani.org> wrote: > On 2016-04-22 tip-bot for Kees Cook wrote: >> x86/boot: Make memcpy() handle overlaps >> >> Two uses of memcpy() (screen scrolling and ELF parsing) were handling >> overlapping memory areas. While there were no explicitly noticed bugs >> here (yet), it is best to fix this so that the copying will always be >> safe. >> >> Instead of making a new memmove() function that might collide with >> other memmove() definitions in the decompressors, this just makes the >> compressed boot code's copy of memcpy() overlap-safe. > > So far lib/decompress_unxz.c is the only decompressor that needs > memmove(). There the local definition is inside #ifndef to make it easy > to omit it and to use another memmove() implementation. It's enough to > do this: > > #define memmove memmove > > To me it sounds less confusing if a function that works on overlapping > buffers is named memmove() instead of memcpy(). In those places where > buffers can overlap one would then use memmove() so that it's clear to > the reader that overlapping is possible.
Okay, I'll refactor this and double-check the xz case.
Thanks!
-Kees
-- Kees Cook Chrome OS & Brillo Security
| |