Commit Briefs
only memcpy into imsg->data if datalen is not zero
Passing a NULL pointer to memcpy is UB no matter if len is 0 (commit by claudio@, backporting for telescope.)
fix compilation on glibc
glibc needs _GNU_SOURCE defined to make IOV_MAX visible. Use AC_USE_SYSTEM_EXTENSIONS and make sure to include compat.h before everything else. Found by cage_, thanks!