GCC is concerned that if we never go round the loop then fd will be uninitialized. By asserting that getaddrinfo set result != NULL we can avoid this. nbd.c: In function ‘nbd_open_handle’: nbd.c:974:5: error: ‘fd’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 974 | close (fd); | ^~~~~~~~~~ nbd.c:954:7: note: ‘fd’ was declared here 954 | int fd; | ^~ cc1: all warnings being treated as errors --- plugins/nbd/nbd.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/nbd/nbd.c b/plugins/nbd/nbd.c index dba46f1..4d0a67c 100644 --- a/plugins/nbd/nbd.c +++ b/plugins/nbd/nbd.c @@ -960,6 +960,8 @@ nbd_connect_tcp (void) return -1; } + assert (result != NULL); + for (rp = result; rp; rp = rp->ai_next) { fd = socket (rp->ai_family, rp->ai_socktype, rp->ai_protocol); if (fd == -1) -- 2.21.0