From: Simon Wilkinson Date: Thu, 19 May 2011 17:19:29 +0000 (+0100) Subject: vlserver: Use correct base value when replacing X-Git-Tag: upstream/1.8.0_pre1^2~3697 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=a180b0c5d8991a14f1fbd78d81dcb4754a24f4d3;p=packages%2Fo%2Fopenafs.git 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 --- diff --git a/src/vlserver/vlprocs.c b/src/vlserver/vlprocs.c index 1c86a65b8..98a6aedd4 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,