]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
vlserver: Use correct base value when replacing
authorSimon Wilkinson <sxw@your-file-system.com>
Thu, 19 May 2011 17:19:29 +0000 (18:19 +0100)
committerDerrick Brashear <shadow@dementia.org>
Sun, 5 Jun 2011 13:55:18 +0000 (06:55 -0700)
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 <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/vlserver/vlprocs.c

index 1c86a65b82bcb656bb81fe63f3def06a5ad4659c..98a6aedd47911f29cd24310123316247d5147080 100644 (file)
@@ -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,