fs: fix setserverprefs where long is larger than afs_int32
authorMarc Dionne <marc.c.dionne@gmail.com>
Thu, 22 Sep 2011 00:31:33 +0000 (20:31 -0400)
committerDerrick Brashear <shadow@dementix.org>
Thu, 22 Sep 2011 13:33:32 +0000 (06:33 -0700)
commit649d3a0957eef0c607a63b47f11bd4a0ca8655ca
tree1a226718ab666f1531b13ff9cc769c51de4e3754
parent6fb2e92422abdaca6175f2556b24ba681af72fd6
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.

Change-Id: I2100e7fe77a137257eb308ad127c151de84756bc
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>
src/venus/fs.c