Skip to content
  • Edward Z. Yang's avatar
    Filter out null bytes from trace, and warn accordingly, fixing #9395. · d360d440
    Edward Z. Yang authored
    
    
    Summary:
    Previously, if you ran trace "foo\0bar", the output was truncated so
    that everything after the null byte was omitted.  This was terrible.
    Now we filter out null bytes, and emit an extra trace saying that
    null bytes were filtered out.
    
    NB: we CANNOT fix debugBelch, because all printf variants *always*
    respect null bytes, even if you're using string precision such as
    %.*s.  The alternative would have been to introduce a new function
    debugRawBelch which did not use format strings and took an explicit
    string length, but I decided we generally should avoid putting null
    bytes in our trace messages, and warn the user.
    
    Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: hvr, austin
    
    Subscribers: simonmar, relrod, ezyang, carter
    
    Differential Revision: https://phabricator.haskell.org/D121
    
    GHC Trac Issues: #9395
    d360d440