Hey Stefan, Marc-Andre, MST, David - As promised here is a series cleaning up error handling in the libvhost-user memory mapping path. Most of these cleanups are straightforward and have been discussed on the mailing list in threads [1] and [2].
[1] https://lore.kernel.org/qemu-devel/20211018143319.GA11006@raphael-debian-dev/ [2] https://lore.kernel.org/qemu-devel/9391f500-70be-26cf-bcfc-591d3ee84...@redhat.com/ Changes since V1: * Checks for a single fd vu_add_mem_reg and vu_rem_mem_reg return false instead of true. * Check for over-running max ram slots in vu_add_mem_reg returns false instead of true. * vu_rem_mem_reg unmaps all matching regions. * Decriment iterator variable when looping through regions in vu_rem_mem_reg to ensure matching regions aren’t missed. Changes since V2: * Fixed FD leaks on all input validation failures * Added comment David suggested to explain removing duplicate regions * Added David’s patch to close message FDs on VHOST_USER_REM_MEM_REG * Expanded commit message for patches checking FD numbers * Fixed vmsg->size <= sizeof(vmsg->payload.memreg) validation check * Improved error message when a backend has no free slots * Improved error messages when the backend receives invalid vmsg->fd_num and/or vmeg->size Dropped R-b tags due to non-trivial changes. Thanks, Raphael David Hildenbrand (2): libvhost-user: Simplify VHOST_USER_REM_MEM_REG libvhost-user: fix VHOST_USER_REM_MEM_REG not closing the fd Raphael Norwitz (4): libvhost-user: Add vu_rem_mem_reg input validation libvhost-user: Add vu_add_mem_reg input validation libvhost-user: prevent over-running max RAM slots libvhost-user: handle removal of identical regions subprojects/libvhost-user/libvhost-user.c | 76 ++++++++++++++++++----- subprojects/libvhost-user/libvhost-user.h | 2 + 2 files changed, 61 insertions(+), 17 deletions(-) -- 2.20.1