fs: fix setserverprefs where long is larger than afs_int32
Make the fscanf and scanf format specifiers match the type of the
target variable. This prevents trying to store a long int into an
afs_int32 variable which may be smaller, and overwriting neighbouring
data on the stack.
The effect on a 64-bit Linux system was that the high bits of "rank"
would overwrite the first 4 bytes of the scanned host name, causing
setserverprefs to fail with:
: couldn't resolve name.
Reviewed-on: http://gerrit.openafs.org/5486
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit
649d3a0957eef0c607a63b47f11bd4a0ca8655ca)
Change-Id: I5869423a8512e6e5d64162b17a69106355ca3639
Reviewed-on: http://gerrit.openafs.org/5535
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>