diff --git a/src/pipewire/core.c b/src/pipewire/core.c index 2fe0eb79e..d18d6076b 100644 --- a/src/pipewire/core.c +++ b/src/pipewire/core.c @@ -81,7 +81,10 @@ static void core_event_add_mem(void *data, uint32_t id, uint32_t type, int fd, u pw_log_debug("%p: add mem %u type:%u fd:%d flags:%u", this, id, type, fd, flags); m = pw_mempool_import(this->pool, flags, type, fd); - if (m->id != id) { + if (m == NULL) { + pw_log_error("%p: can't import mem id:%u fd:%d: %m", this, id, fd); + pw_proxy_errorf(&this->proxy, -errno, "can't import mem id:%u: %m", id); + } else if (m->id != id) { pw_log_error("%p: invalid mem id %u, fd:%d expected %u", this, id, fd, m->id); pw_proxy_errorf(&this->proxy, -EINVAL, "invalid mem id %u, expected %u", id, m->id); diff --git a/src/pipewire/mem.c b/src/pipewire/mem.c index 3ef6db75b..6804c7d6c 100644 --- a/src/pipewire/mem.c +++ b/src/pipewire/mem.c @@ -611,7 +611,7 @@ struct pw_memblock * pw_mempool_import(struct pw_mempool *pool, struct memblock *b; if (fd < 0) { - pw_log_error("%p: cannot import invalid fd", pool); + pw_log_error("%p: cannot import invalid fd:%d", pool, fd); errno = EINVAL; return NULL; }