mountd: fix --manage-gids hang due to int/uint bug
authorSteve Dickson <steved@redhat.com>
Mon, 8 Mar 2010 16:22:46 +0000 (11:22 -0500)
committerSteve Dickson <steved@redhat.com>
Mon, 8 Mar 2010 16:22:46 +0000 (11:22 -0500)
commit6ca440c2661dccb05ae74ffb65817e9c30f05c8a
tree2076bdce6631e3dd162ebd7f9aaa9830a4106512
parent84346b7d7e69c113d6dbf03f2646a47b0e74a6b8
mountd: fix --manage-gids hang due to int/uint bug

A uid or gid should be represented as unsigned, not signed.

The conversion to signed here could cause a hang on access by an unknown
user to a server running mountd with --manage-gids; such a user is
likely to be mapped to 232-1, which may be converted to 231-1 when
represented as an int, resulting in a downcall for uid 231-1, hence the
original rpc hanging forever waiting for a cache downcall for 232-1.

Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Steve Dickson <steved@redhat.com>
support/nfs/cacheio.c
utils/mountd/cache.c