From: Johannes Sixt Date: Thu, 06 Apr 2017 20:49:17 GMT Subject: Re: [PATCH v3 1/2] Fix nonnull errors reported by UBSAN with GCC 7. Message-ID: <357d045a-b1c5-1a73-2256-839efb543fe3@kdbg.org> In-Reply-To: Am 06.04.2017 um 19:31 schrieb René Scharfe: > Am 06.04.2017 um 18:33 schrieb Johannes Sixt: >> Am 06.04.2017 um 17:42 schrieb Martin Liška: >>> +static inline void *sane_memmove(void *dest, const void *src, size_t n) >>> +{ >>> + if (n > 0) >>> + return memmove(dest, src, n); >>> + else >>> + return dest; >>> +} >> >> Huh? memmove with n == 0 is well-defined. This wrapper is pointless. > > memmove(3) with NULL pointers is undefined. Then don't hide this helper behind a macro with a suspiciously similar name. Using the name sane_mmemove at the call site is preferable. memmove_or_null or something similar perhaps even more so. -- Hannes