diff --git a/repos/base/include/base/ipc_msgbuf.h b/repos/base/include/base/ipc_msgbuf.h index 459c0100e..dd8dba142 100644 --- a/repos/base/include/base/ipc_msgbuf.h +++ b/repos/base/include/base/ipc_msgbuf.h @@ -198,7 +198,8 @@ class Genode::Msgbuf_base : Noncopyable if (_data_size + num_bytes > _capacity) return; /* copy buffer */ - memcpy(_data_last(), src_addr, num_bytes); + if (src_addr && num_bytes) + memcpy(_data_last(), src_addr, num_bytes); /* increment write pointer to next dword-aligned value */ _data_size += align_natural(num_bytes); diff --git a/repos/base/src/lib/ldso/include/relocation_generic.h b/repos/base/src/lib/ldso/include/relocation_generic.h index c119334b6..33d0ca2b4 100644 --- a/repos/base/src/lib/ldso/include/relocation_generic.h +++ b/repos/base/src/lib/ldso/include/relocation_generic.h @@ -170,7 +170,7 @@ class Linker::Reloc_jmpslot_generic } } - Elf::Addr target_addr() const { return *_addr; } + Elf::Addr target_addr() const { return _addr ? *_addr : 0; } };