Fix a bug introduced in commit
aab1e71628e6a4ce68c5e59e2f815867438280d1
in which a pointer was incorrectly checked for a NULL value.
Fixes a crash when a PAG is set on Solaris.
# mdb unix.1 vmcore.1
> ::status
...
panic message:
BAD TRAP: type=e (#pf Page fault) rp=
fffffffc802ba8f0 addr=0 occurred in
module "afs" due to a NULL pointer dereference
> ::stack
pag_to_gidset+0x145()
setpag+0xcc()
AddPag+0x3a()
afs_setpag+0x58()
Afs_syscall+0x115()
The crash occurs since gidslot is NULL during the assignment:
*gidslot = pagvalue;
Change-Id: Ic4d50c6b046d10faa49cd4363692e0302707583d
Reviewed-on: https://gerrit.openafs.org/12508
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
}
}
- if (gidslot != NULL) {
+ if (gidslot == NULL) {
/* If we don't already have a PAG, grow the groups list by one, and put
* our PAG in the new empty slot. */
if ((sizeof(gidset[0])) * (ngroups + 1) > gidset_sz) {