Avoid off-by-one error when saving the password in klog
authorRuss Allbery <rra@stanford.edu>
Sat, 12 Jun 2010 23:07:52 +0000 (16:07 -0700)
committerDerrick Brashear <shadow@dementia.org>
Sun, 13 Jun 2010 05:37:41 +0000 (22:37 -0700)
commit713b65adaa756b5a66ccb0620d5f2bc50642f2f1
tree02f919d304cdef1906e94828470adc423bb202f0
parentbc8f2bfb1cc78458729ca29c6623adff80237018
Avoid off-by-one error when saving the password in klog

When klog saved the password entered by the user to allow attempts
at multiple AFS principals without reprompting, it copied the whole
buffer according to the declared reply length into local storage.
This was done without regard to the local allocated storage size,
and was then nul-terminated without regard to the allocated storage
size.  Both klog and Heimdal use a size of BUFSIZ for the reply
buffer by default, which meant that klog on Heimdal was writing past
the end of the allocated structure when nul-terminating the password.

Store our allocated buffer size in the struct and only copy at most
one fewer than that many characters, and then nul-terminate
accordingly.

(The assumption that BUFSIZ is always long enough is still bogus,
but that's larger surgery.)

Change-Id: Ic8d4357aad2f8dfa0fffe9849d2546a88ecd246a
Reviewed-on: http://gerrit.openafs.org/2129
Tested-by: Russ Allbery <rra@stanford.edu>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/aklog/klog.c