From 9ea4e742ce6f1b7793d1edfca70427a8660aeffa Mon Sep 17 00:00:00 2001 From: Wouter Verhelst Date: Sat, 12 Feb 2011 19:50:29 +0100 Subject: [PATCH] Assign a value to serve when using modern protocol We dereference this pointer later on, so need to make sure it's actually valid. As an added precaution, initialize it to NULL, so that we catch any further incorrect dereferences, too. --- nbd-server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nbd-server.c b/nbd-server.c index edb3eee..ec5b84f 100644 --- a/nbd-server.c +++ b/nbd-server.c @@ -1745,7 +1745,7 @@ int serveloop(GArray* servers) { memcpy(&rset, &mset, sizeof(fd_set)); if(select(max+1, &rset, NULL, NULL, NULL)>0) { int net = 0; - SERVER* serve; + SERVER* serve=NULL; DEBUG("accept, "); if(FD_ISSET(modernsock, &rset)) { @@ -1757,6 +1757,7 @@ int serveloop(GArray* servers) { close(net); net=0; } + serve = client->server; } for(i=0;ilen && !net;i++) { serve=&(g_array_index(servers, SERVER, i)); -- 1.7.10.4