bos: Let xdr allocate rpc output strings 50/14650/5
authorMichael Meffie <mmeffie@sinenomine.net>
Wed, 23 Jun 2021 00:02:18 +0000 (20:02 -0400)
committerBenjamin Kaduk <kaduk@mit.edu>
Sat, 26 Jun 2021 03:54:32 +0000 (23:54 -0400)
commit9ae5b599c7289a6f3ea2b03f2646402da182bb5d
tree3ac35712c269544608bc4c826dc90bc5680778cc
parent69973755bdb649a42a04c98d180867b741955a4b
bos: Let xdr allocate rpc output strings

The bos client provides fixed sized buffers on the stack for RPC output
strings instead of letting xdr allocate output strings.  Unfortunately,
the fixed sized buffers do not account for the terminating nul char when
the output string is the maximum size defined for the bozo RPCs.

To avoid potential buffer overflows, and to allow for larger xdr string
sizes in the future, convert these to xdr allocated strings. Be sure to
always free the xdr allocated strings.

The following bozo RPCs have xdr output strings, and are addressed in
this commit:

BOZO_EnumerateInstance
BOZO_GetCellHost
BOZO_GetCellName
BOZO_GetInstanceInfo
BOZO_GetInstanceParm
BOZO_GetInstanceStrings
BOZO_GetStatus
BOZO_ListSUsers

Thanks to Cheyenne Wills for pointing out this issue.

Change-Id: I7fb48ff6766420a2d84723e1663ff24e86313ccf
Reviewed-on: https://gerrit.openafs.org/14650
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/bozo/bos.c