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
    • Ludovico de Nittis's avatar
      Merge branch 'wip/sr385-non-codepoints' into 'master' · 0cdaae1a
      Ludovico de Nittis authored
      inspect-library: Don't print non-ASCII as nonsense codepoints
      
      See merge request !278
      0cdaae1a
    • 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. Mar 17, 2021
  3. Mar 16, 2021
  4. Mar 12, 2021
  5. Mar 11, 2021
  6. Mar 05, 2021
  7. Mar 04, 2021
Loading