venus: fix memory leak 15/12315/2
authorMarcio Barbosa <mbarbosa@sinenomine.net>
Tue, 28 Jun 2016 15:48:06 +0000 (12:48 -0300)
committerBenjamin Kaduk <kaduk@mit.edu>
Wed, 29 Jun 2016 17:05:53 +0000 (13:05 -0400)
The fs getserverprefs command displays preference
ranks for file / volume location server machine
interfaces. In order to get the complete set of
preference ranks, the VIOC_GETSPREFS system call
might have to be called several times. If so, the
memory previously allocated should be released.

Change-Id: I8491117ead626e70aac40343923d52284f274efd
Reviewed-on: https://gerrit.openafs.org/12315
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/venus/fs.c

index caf7ce3..a0dfa9a 100644 (file)
@@ -3351,10 +3351,10 @@ GetPrefCmd(struct cmd_syndesc *as, void *arock)
        }
 
        in->offset = out->next_offset;
-    } while (out->next_offset > 0);
-
-    if (blob.out != space)
-       free(blob.out);
+       if (blob.out != space) {
+           free(blob.out);
+       }
+    } while (in->offset > 0);
 
     return 0;
 }