Skip to content
Snippets Groups Projects
  1. Mar 23, 2021
    • Simon McVittie's avatar
      inspect-library: Add a line-based octal output format · f0f32d07
      Simon McVittie authored
      
      Instead of trying to format JSON using only glibc, this just prints
      key=value lines, some of which can be repeated. The values always have
      control characters and backslashes escaped as C-style octal sequences
      such as \040 for space, similar to the encoding of /etc/fstab. This
      allows non-UTF-8 bytestrings to be represented.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      f0f32d07
    • Simon McVittie's avatar
      inspect-library: Don't print non-ASCII as nonsense codepoints · 869b7c0d
      Simon McVittie authored
      If we pass a (signed) char to a varargs function, it's promoted to
      (signed) int by the default argument promotions (resulting in padding
      on the left by copying the sign bit); but then %x interprets it as an
      unsigned int. The practical result is that for anything over 0x7f, for
      example 0xAB, we interpret the high bit as the sign bit and pad with
      "1" bits, turning 0xAB into 0xFFFFFFAB. \uFFFFFFAB is not allowed as an
      escaped JSON character (because Unicode stops at U+10FFFF) so parsing
      fails.
      
      Note that this change does not result in strings with non-ASCII content
      being interpreted *correctly*: we are effectively taking the bytestring
      from the OS and decoding it as though it was ISO-8859-1, so if a file's
      path includes U+00C7 LATIN CAPITAL_LETTER C WITH CEDILLA (`Ç`), encoded
      as 0xC3 0x87 on disk (assuming a UTF-8 environment), it will go into
      the JSON document as \u00C3\u0087 instead of the correct \u00C7. Fixing
      this would require either a considerably more complex implementation of
      inspect-library, or an output format that is based on bytestrings
      rather than JSON.
      
      Partially addresses
      https://github.com/ValveSoftware/steam-runtime/issues/385 and
      #69
      
      .
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      869b7c0d
  2. Sep 08, 2020
  3. Jun 24, 2020
  4. Mar 13, 2020
  5. Oct 31, 2019
  6. Aug 12, 2019
  7. Jul 29, 2019
  8. Jul 26, 2019
Loading