tree 66638a1716374a8d1ac8ece95dceea56ce231a5c
parent d96546f5b0f7c57395a338dbb9ac3ac5a48b77fa
author Damien Miller <djm@mindrot.org> 1283258199 +1000
committer Damien Miller <djm@mindrot.org> 1283258199 +1000

   - djm@cvs.openbsd.org 2010/08/31 09:58:37
     [auth-options.c auth1.c auth2.c bufaux.c buffer.h kex.c key.c packet.c]
     [packet.h ssh-dss.c ssh-rsa.c]
     Add buffer_get_cstring() and related functions that verify that the
     string extracted from the buffer contains no embedded \0 characters*
     This prevents random (possibly malicious) crap from being appended to
     strings where it would not be noticed if the string is used with
     a string(3) function.

     Use the new API in a few sensitive places.

     * actually, we allow a single one at the end of the string for now because
     we don't know how many deployed implementations get this wrong, but don't
     count on this to remain indefinitely.
