• J. Bruce Fields's avatar
    nfsd: escape high characters in binary data · ea053e16
    J. Bruce Fields authored
    I'm exposing some information about NFS clients in pseudofiles.  I
    expect to eventually have simple tools to help read those pseudofiles.
    
    But it's also helpful if the raw files are human-readable to the extent
    possible.  It aids debugging and makes them usable on systems that don't
    have the latest nfs-utils.
    
    A minor challenge there is opaque client-generated protocol objects like
    state owners and client identifiers.  Some clients generate those to
    include handy information in plain ascii.  But they may also include
    arbitrary byte sequences.
    
    I think the simplest approach is to limit to isprint(c) && isascii(c)
    and escape everything else.
    
    That means you can just cat the file and get something that looks OK.
    Also, I'm trying to keep these files legal YAML, which requires them to
    UTF-8, and this is a simple way to guarantee that.
    Acked-by: default avatarKees Cook <keescook@chromium.org>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    ea053e16
string_helpers.c 13.9 KB