Fix oversize writes to write to correct area of disk
authorAlex Bligh <alex@alex.org.uk>
Sat, 28 May 2011 18:53:44 +0000 (19:53 +0100)
committerAlex Bligh <alex@alex.org.uk>
Sat, 28 May 2011 18:53:44 +0000 (19:53 +0100)
Oversize writes were not incrementing the seek location for
writes. This could cause disk corruption.

nbd-server.c

index d57120b..41b847a 100644 (file)
@@ -1576,6 +1576,7 @@ int mainloop(CLIENT *client) {
                                        continue;
                                }
                                len -= currlen;
+                               request.from += currlen;
                                currlen = (len < BUFSIZE) ? len : BUFSIZE;
                        }
                        SEND(client->net, reply);