From a180b0c5d8991a14f1fbd78d81dcb4754a24f4d3 Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Thu, 19 May 2011 18:19:29 +0100 Subject: [PATCH] vlserver: Use correct base value when replacing When we're removing existing address entries the code calculates a base and index value for each entry that we're removing an address from. However, it then _uses_ a previously calculated base value, with the new index. This works fine if the old base and the new base match, but if they don't, chaos will ensue. Fix to always use matched base and index pairs. Change-Id: Ia592abdc1c58b5cf5776bb24e67aee708275a9b0 Reviewed-on: http://gerrit.openafs.org/4771 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- src/vlserver/vlprocs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vlserver/vlprocs.c b/src/vlserver/vlprocs.c index 1c86a65b82..98a6aedd47 100644 --- a/src/vlserver/vlprocs.c +++ b/src/vlserver/vlprocs.c @@ -2379,7 +2379,7 @@ SVL_RegisterAddrs(struct rx_call *rxcall, afsUUID *uuidp, afs_int32 spare1, base = (ctx.hostaddress[WillChange[i]] >> 16) & 0xff; index = ctx.hostaddress[WillChange[i]] & 0x0000ffff; - tex = &ctx.ex_addr[fbase][index]; + tex = &ctx.ex_addr[base][index]; if (++m == 1) VLog(0,