1. 07 1月, 2014 6 次提交
    • R
      remove sys/sysctl.h · 2c5e7560
      Rich Felker 提交于
      this functionality has essentially always been deprecated in linux,
      and was never supported by musl. the presence of the header was
      reported to cause some software to attempt to use the nonexistant
      function, so removing the header is the cleanest solution.
      2c5e7560
    • R
      fix incorrect type for wd argument of inotify_rm_watch · 27503373
      Rich Felker 提交于
      this was wrong since the original commit adding inotify, and I don't
      see any explanation for it. not even the man pages have it wrong. it
      was most likely a copy-and-paste error.
      27503373
    • R
      fix argument types for legacy function inet_makeaddr · dbe221ec
      Rich Felker 提交于
      the type int was taken from seemingly erroneous man pages. glibc uses
      in_addr_t (uint32_t), and semantically, the arguments should be
      unsigned.
      dbe221ec
    • R
      eliminate explicit (long) casts when making syscalls · eca335fc
      Rich Felker 提交于
      this practice came from very early, before internal/syscall.h defined
      macros that could accept pointer arguments directly and handle them
      correctly. aside from being ugly and unnecessary, it looks like it
      will be problematic when we add support for 32-bit ABIs on archs where
      registers (and syscall arguments) are 64-bit, e.g. x32 and mips n32.
      eca335fc
    • R
      const-qualify the address argument to dladdr · 839cc4e6
      Rich Felker 提交于
      this agrees with implementation practice on glibc and BSD systems, and
      is the const-correct way to do things; it eliminates warnings from
      passing pointers to const. the prototype without const came from
      seemingly erroneous man pages.
      839cc4e6
    • R
      1e7a581a
  2. 04 1月, 2014 1 次提交
  3. 03 1月, 2014 4 次提交
    • R
      fanotify.c: fix typo in header inclusion · 9e91398b
      rofl0r 提交于
      the header is included only as a guard to check that the declaration
      and definition match, so the typo didn't cause any breakage aside
      from omitting this check.
      9e91398b
    • R
      disable the brk function · 863d628d
      Rich Felker 提交于
      the reasons are the same as for sbrk. unlike sbrk, there is no safe
      usage because brk does not return any useful information, so it should
      just fail unconditionally.
      863d628d
    • R
      disable sbrk for all values of increment except 0 · 7a995fe7
      Rich Felker 提交于
      use of sbrk is never safe; it conflicts with malloc, and malloc may be
      used internally by the implementation basically anywhere. prior to
      this change, applications attempting to use sbrk to do their own heap
      management simply caused untrackable memory corruption; now, they will
      fail with ENOMEM allowing the errors to be fixed.
      
      sbrk(0) is still permitted as a way to get the current brk; some
      misguided applications use this as a measurement of their memory
      usage or for other related purposes, and such usage is harmless.
      
      eventually sbrk may be re-added if/when malloc is changed to avoid
      using the brk by using mmap for all allocations.
      7a995fe7
    • R
      add fanotify syscall wrapper and header · 5c81b8fe
      rofl0r 提交于
      5c81b8fe
  4. 30 12月, 2013 1 次提交
    • T
      fix struct signalfd_siginfo · 7e10f209
      Timo Teräs 提交于
      ssi_ptr is really 64-bit in kernel, so fix that. assuming sizeof(void*)
      for it also caused incorrect padding for 32-bits, as the following
      64-bits are aligned to 64-bits (and the padding was not taken into
      account), so fix the padding as well. add addr_lsb field while there.
      7e10f209
  5. 21 12月, 2013 4 次提交
  6. 20 12月, 2013 1 次提交
    • R
      fix failure of fchmod, fstat, fchdir, and fchown to produce EBADF · 65ea604c
      Rich Felker 提交于
      the workaround/fallback code for supporting O_PATH file descriptors
      when the kernel lacks support for performing these operations on them
      caused EBADF to get replaced by ENOENT (due to missing entry in
      /proc/self/fd). this is unlikely to affect real-world code (calls that
      might yield EBADF are generally unsafe, especially in library code)
      but it was breaking some test cases.
      
      the fix I've applied is something of a tradeoff: it adds one syscall
      to these operations on kernels where the workaround is needed. the
      alternative would be to catch ENOENT from the /proc lookup and
      translate it to EBADF, but I want to avoid doing that in the interest
      of not touching/depending on /proc at all in these functions as long
      as the kernel correctly supports the operations. this is following the
      general principle of isolating hacks to code paths that are taken on
      broken systems, and keeping the code for correct systems completely
      hack-free.
      65ea604c
  7. 19 12月, 2013 1 次提交
  8. 15 12月, 2013 1 次提交
    • R
      fix dynamic linker entry point for microblaze · 0311d1dd
      Rich Felker 提交于
      the ABI allows the callee to clobber stack slots that correspond to
      arguments passed in registers, so the caller must adjust the stack
      pointer to reserve space appropriately. prior to this fix, the argv
      array was possibly clobbered by dynamic linker code before passing
      control to the main program.
      0311d1dd
  9. 13 12月, 2013 2 次提交
  10. 12 12月, 2013 3 次提交
  11. 07 12月, 2013 1 次提交
  12. 05 12月, 2013 4 次提交
  13. 04 12月, 2013 2 次提交
  14. 02 12月, 2013 8 次提交
  15. 01 12月, 2013 1 次提交
    • R
      support mix of IPv4 and v6 nameservers in resolv.conf · 7603c5f1
      Rich Felker 提交于
      a v6 socket will only be used if there is at least one v6 nameserver
      address. if the kernel lacks v6 support, the code will fall back to
      using a v4 socket and requests to v6 servers will silently fail. when
      using a v6 socket, v4 addresses are converted to v4-mapped form and
      setsockopt is used to ensure that the v6 socket can accept both v4 and
      v6 traffic (this is on-by-default on Linux but the default is
      configurable in /proc and so it needs to be set explicitly on the
      socket level). this scheme avoids increasing resource usage during
      lookups and allows the existing network io loop to be used without
      modification.
      
      previously, nameservers whose address family did not match the address
      family of the first-listed nameserver were simply ignored. prior to
      recent __ipparse fixes, they were not ignored but erroneously parsed.
      7603c5f1