On 2/7/22 4:43 AM, Ammar Faizi wrote: > From: Alviro Iskandar Setiawan <alviro.iskandar@xxxxxxxxx> > > In io_recv() if import_single_range() fails, the @flags variable is > uninitialized, then it will goto out_free. > > After the goto, the compiler doesn't know that (ret < min_ret) is > always true, so it thinks the "if ((flags & MSG_WAITALL) ..." path > could be taken. > > The complaint comes from gcc-9 (Debian 9.3.0-22) 9.3.0: > ``` > fs/io_uring.c:5238 io_recvfrom() error: uninitialized symbol 'flags' > ``` > Fix this by bypassing the @ret and @flags check when > import_single_range() fails. The compiler should be able to deduce this, and I guess newer compilers do which is why we haven't seen this warning before. I'm fine with doing this as a cleanup, but I think the commit title should be modified a bit. It sounds like there might be an issue reading uninitialized data, which isn't actually true. -- Jens Axboe