Whilst trying to get to grips with memblocks and chunks, I came across this in rtp.c: if (ioctl(c->fd, FIONREAD, &size) < 0) { pa_log_warn("FIONREAD failed: %s", pa_cstrerror(errno)); goto fail; } if (size <= 0) return 0; if (c->memchunk.length < (unsigned) size) { size_t l; if (c->memchunk.memblock) pa_memblock_unref(c->memchunk.memblock); l = PA_MAX((size_t) size, pa_mempool_block_size_max(pool)); I'd have expected that last line to use PA_MIN rather than PA_MAX or have I misunderstood?