Skip to content
Snippets Groups Projects
  1. Jan 03, 2017
  2. Dec 21, 2016
  3. Dec 20, 2016
  4. Dec 18, 2016
  5. Dec 15, 2016
  6. Dec 13, 2016
    • bors's avatar
      Auto merge of #472 - BrandonSchaefer:wifsignaled-fix, r=alexcrichton · fb8587d3
      bors authored
      When checking the status from waitpid on a kill -STOP <child_pid> WIFSIGNALED returns true
      
      Currently in WIFSIGNALED rust is doing:
      (status & 0x7f) + 1
      where status is i32
      
      As defined in /usr/include/x86_64-linux-gnu/bits/waitstatus.h
      #define __WIFSIGNALED(status) \
        (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
      
      Here is an example of the issue:
      http://paste2.org/fXc8BxJ0
      
      Run it, and it'll print the child pid then:
      kill -STOP <child_pid>
      
      Expect:
        Stopped by signal print statement
      Results:
        Killed by signal print statement
      
      Using the i32, it wont overflow leaving you with 128 returning true, using the waitstatus define you'll end up with -64 (since it shifts 1 right) which would return false. Though the C version shifts right once not really sure *why* but theres most likely a reason somewhere.
      
      For the fix, just cast to i8 (signed char pretty much) as the C version is doing.
      
      RUNNING ALL TESTS
      PASSED 7356 tests
      fb8587d3
    • Brandon Schaefer's avatar
  7. Dec 07, 2016
  8. Dec 06, 2016
  9. Dec 05, 2016
  10. Dec 04, 2016
  11. Dec 03, 2016
  12. Dec 02, 2016
    • bors's avatar
      Auto merge of #462 - semarie:openbsd-i686-correct, r=alexcrichton · 0ac39c5c
      bors authored
      i686-unknown-openbsd libc correction
      
      Now I had been able to run testsuite on i686-unknown-openbsd, here a batch of corrections.
      
      - `suseconds_t` is `c_long` (`i64` or `i32` depending the arch)
      - struct siginfo_t padding adjustment (the pointer `si_addr` makes the pad to change depending pointer size)
      
      I tested the PR on i686-unknown-openbsd and x86_64-unknown-openbsd.
      0ac39c5c
Loading