1. 22 Jun, 2016 1 commit
  2. 21 Jun, 2016 6 commits
  3. 20 Jun, 2016 6 commits
  4. 19 Jun, 2016 1 commit
    • Alex Brainman's avatar
      debug/pe: handle files with no string table · 691c5c15
      Alex Brainman authored
      pecoff.doc (https://goo.gl/ayvckk) in section 5.6 says:
      
      Immediately following the COFF symbol table is the COFF string table.
      The position of this table is found by taking the symbol table address
      in the COFF header, and adding the number of symbols multiplied by
      the size of a symbol.
      
      So it is unclear what to do when symbol table address is 0.
      Lets assume executable does not have any string table.
      
      Added new test with executable with no symbol table. The
      
      gcc -s testdata\hello.c -o testdata\gcc-386-mingw-no-symbols-exec.
      
      command was used to generate the executable.
      
      Fixes #16084
      
      Change-Id: Ie74137ac64b15daadd28e1f0315f3b62d1bf2059
      Reviewed-on: https://go-review.googlesource.com/24200Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      691c5c15
  5. 17 Jun, 2016 2 commits
  6. 16 Jun, 2016 4 commits
  7. 15 Jun, 2016 5 commits
  8. 14 Jun, 2016 7 commits
  9. 13 Jun, 2016 4 commits
  10. 12 Jun, 2016 2 commits
  11. 11 Jun, 2016 1 commit
  12. 10 Jun, 2016 1 commit
    • Ian Lance Taylor's avatar
      os: on GNU/Linux use waitid to avoid wait/kill race · cea29c4a
      Ian Lance Taylor authored
      On systems that support the POSIX.1-2008 waitid function, we can use it
      to block until a wait will succeed. This avoids a possible race
      condition: if a program calls p.Kill/p.Signal and p.Wait from two
      different goroutines, then it is possible for the wait to complete just
      before the signal is sent. In that case, it is possible that the system
      will start a new process using the same PID between the wait and the
      signal, causing the signal to be sent to the wrong process. The
      Process.isdone field attempts to avoid that race, but there is a small
      gap of time between when wait returns and isdone is set when the race
      can occur.
      
      This CL avoids that race by using waitid to wait until the process has
      exited without actually collecting the PID. Then it sets isdone, then
      waits for any active signals to complete, and only then collects the PID.
      
      No test because any plausible test would require starting enough
      processes to recycle all the process IDs.
      
      Update #13987.
      Update #16028.
      
      Change-Id: Id2939431991d3b355dfb22f08793585fc0568ce8
      Reviewed-on: https://go-review.googlesource.com/23967
      Run-TryBot: Ian Lance Taylor <iant@golang.org>
      Reviewed-by: default avatarAustin Clements <austin@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      cea29c4a