1. 15 Mar, 2020 2 commits
  2. 07 Mar, 2020 1 commit
    • Jonas Termansen's avatar
      Rewrite scanf(3) to be standards compliant. · 221fa7d9
      Jonas Termansen authored
      This change adds missing features:
      
      * %[ for pattern matching with a scanset.
      * %m for allocation of strings.
      * %p for pointers.
      * Field width for integers.
      
      The following features remain unimplemented, like with printf(3):
      
      * Floating point support.
      * Wide character support.
      * %n$ positional parameters.
      
      The code has been completely refactored to be much more maintainable.
      
      The implemented features should now be standards compliant. A large number
      of edge cases have been fixed.
      
      The vscanf_callback(3) function has been renamed to vcbscanf(3) and a new
      cbscanf(3) function has been added.
      221fa7d9
  3. 05 Mar, 2020 1 commit
  4. 09 Apr, 2019 1 commit
  5. 08 Dec, 2018 7 commits
  6. 01 Sep, 2018 2 commits
    • Jonas Termansen's avatar
      Fix chmod(2), chown(2), and utimens(2) opening the path for writing. · d3a64e11
      Jonas Termansen authored
      The change 9d29e96c "Fix open(2) allowing
      opening directories invalidly and check O_TRUNC errors." broke the chmod(2),
      chown(2), and utimens(2) system calls on directories, because they can no
      longer be opened for writing.
      
      This changes fixes the regression by opening such paths for reading. There
      is currently no filesystem permission checks for those system calls. However,
      those system calls should check the permissions at the time of the operation
      rather than relying on the file having been opened for writing previously.
      d3a64e11
    • Jonas Termansen's avatar
      Don't unblock SIGABRT in abort(3) before calling raise(SIGABRT). · 58374214
      Jonas Termansen authored
      The language in POSIX mentioning overriding blocking or ignoring SIGABRT
      refers to the inevitability of exiting by SIGABRT if SIGABRT isn't caught or
      if the handler does return.
      
      This implementation of abort(3) implements the standard by raising SIGABRT,
      allowing the signal to be caught; and if the signal is blocked or ignored or
      the handler returns, then exit_thread(2) forcefully exits the process as if
      by SIGABRT.
      58374214
  7. 15 Aug, 2018 2 commits
  8. 12 Aug, 2018 1 commit
  9. 09 Aug, 2018 1 commit
  10. 08 Aug, 2018 1 commit
  11. 07 Aug, 2018 2 commits
  12. 06 Aug, 2018 9 commits
  13. 17 Jul, 2018 2 commits
  14. 15 Apr, 2018 3 commits
  15. 08 Apr, 2018 4 commits
  16. 02 Apr, 2018 1 commit