4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-01-23 23:47:22 +08:00

8672 Commits

Author SHA1 Message Date
Corinna Vinschen
c7c6eadf08 Cygwin: add 3.1.2 release text
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:06 -04:00
Takashi Yano
c601347790 Cygwin: pty: Fix ESC[?3h and ESC[?3l handling again.
- Even with commit fe512b2b12a2cea8393d14f038dc3914b1bf3f60, pty
  still has a problem in ESC[?3h and ESC[?3l handling if invalid
  sequence such as ESC[?$ is sent. This patch fixes the issue.
2020-10-14 10:54:05 -04:00
Takashi Yano
85a3a81837 Cygwin: pty: Fix a bug regarding ESC[?3h and ESC[?3l handling.
- Midnight commander (mc) does not work after the commit
  1626569222066ee601f6c41b29efcc95202674b7 as reported in
  https://www.cygwin.com/ml/cygwin/2019-12/msg00173.html.
  This patch fixes the issue.
2020-10-14 10:54:05 -04:00
Corinna Vinschen
21dc9af466 Cygwin: Bump DLL version to 3.1.2
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:05 -04:00
Corinna Vinschen
88a3d3463e Cygwin: add 3.1.1 release text belatedly
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:05 -04:00
Corinna Vinschen
7bae2c0d60 Cygwin: autoload: Add missing GetProcessGroupAffinity/GetThreadGroupAffinity
Both functions were introduce with Windows 7 only, so we need to
autoload them for the sake of Vista/2008.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:05 -04:00
Corinna Vinschen
575ea861b6 Cygwin: Bump DLL version to 3.1.1
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:05 -04:00
Corinna Vinschen
f2b4f12277 Cygwin: add strtold fix to release message
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:05 -04:00
Corinna Vinschen
9ccc706bdd Cygwin: ilogbl: Make sure to return FP_ILGB0 on zero input
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:05 -04:00
Ken Brown
145fffb706 Cygwin: document the last bugfix 2020-10-14 10:54:05 -04:00
Ken Brown
2c06e86c52 Cygwin: symlink_info::check: avoid assertion failure
On certain error conditions there is a code snippet that checks
whether the last component of the path has a trailing dot or space or
a leading space.  Skip this check if the last component is empty,
i.e., if the path ends with a backslash.  This avoids an assertion
failure if the trailing backslash is the only backslash in the path,
as is the case for a DOS drive 'X:\'.

Addresses: https://cygwin.com/ml/cygwin/2019-12/msg00016.html
2020-10-14 10:54:05 -04:00
Anton Lavrentiev via cygwin-patches
c66050e931 Cygwin: /proc/[PID]/stat to pull process priority correctly
Fix to prior commit 5fa9a0e7 to address https://cygwin.com/ml/cygwin/2019-08/msg00082.html
2020-10-14 10:54:05 -04:00
Takashi Yano
8041a0cadd Cygwin: pty: Convert CamelCase names to snake_case names. 2020-10-14 10:54:04 -04:00
Takashi Yano
a8a3b91f2d Cygwin: pty: Trigger redraw screen if ESC[?3h or ESC[?3l is sent.
- Pseudo console clears console screen buffer if ESC[?3h or ESC[?3l
  is sent. However, xterm/vt100 does not clear screen. This cause
  mismatch between real screen and console screen buffer. Therefore,
  this patch triggers redraw screen in that situation so that the
  synchronization is done on the next execution of native app.
  This solves the problem reported in:
  https://www.cygwin.com/ml/cygwin-patches/2019-q4/msg00116.html
2020-10-14 10:54:04 -04:00
Takashi Yano
b44c5e9a1f Cygwin: console: Revise the code checking if the console is legacy.
- Accessing shared_console_info before initializing causes access
  violation in checking if the console is legacy mode. This patch
  fixes this issue. This solves the problem reported in:
  https://www.cygwin.com/ml/cygwin-patches/2019-q4/msg00099.html
2020-10-14 10:54:04 -04:00
Takashi Yano
148d6a3889 Cygwin: pty: Use redraw screen instead of clear screen.
- Previously, pty cleared screen at startup for synchronization
  between the real screen and console screen buffer for pseudo
  console. With this patch, instead of clearing screen, the screen
  is redrawn when the first native program is executed after pty
  is created. In other words, synchronization is deferred until
  the native app is executed. Moreover, this realizes excluding
  $TERM dependent code.
2020-10-14 10:54:04 -04:00
Mark Geisert
2fd6bf96b9 Cygwin: Doc change to note stackdump limit patch 2020-10-14 10:54:04 -04:00
Mark Geisert
2b4eb38d9b Cygwin: Raise dumpstack frame limit to 32
Create a #define for the limit and raise it from 16 to 32.
2020-10-14 10:54:04 -04:00
Takashi Yano
4902c5e6ee Cygwin: console, pty: Prevent error in legacy console mode. 2020-10-14 10:54:04 -04:00
Takashi Yano
32db005b18 Cygwin: pty: Change how to determine if running as service or not. 2020-10-14 10:54:04 -04:00
Corinna Vinschen
7d4221d00a Cygwin: document console helper patch
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:04 -04:00
Corinna Vinschen
f53bf15004 Cygwin: fix quoting when starting invisible console process
fhandler_console::create_invisible_console_workaround() does not use the
lpApplicationName parameter and neglects to quote its command name on
lpCommandLine in the call to CreateProcessW.

Given CreateProcessW's brain-dead method to evaluate the application
path given on the command line, this opens up a security problem if
Cygwin is installed into a path with spaces in it.

Fix this by using the lpApplicationName parameter and quoting of the
application path in the lpCommandLine parameter (used as argv[0] in
the called console helper.

For extended paranoia, make the argument string array big enough to
fit full 64 bit pointer values into it.  Handles usually only use
the lower 32 bit, but better safe than sorry.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:04 -04:00
Corinna Vinschen
a2ae31951d Cygwin: devices: drop MAX_CONSOLES and fix FH_CONS_MAX
FH_CONS_MAX should refelect the fact that we allow 128 consoles, even if
it's unused.

Suggested-by: Achim Gratz <Stromeko@nexgo.de>
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:04 -04:00
Corinna Vinschen
e55f6ad713 Cygwin: fix process parent/child relationship after execve
Commit 5a0f2c00aa "Cygwin: fork/exec: fix child process permissions"
removed the PROCESS_DUP_HANDLE handle permission of the parent process
handle in the child to avoid a security problem.

It turned out that this broke the following scenario: If a process forks
and then the parent execs, the child loses the ability to register the
parent's death.  To wit, after the parent died the child process does
not set its own PPID to 1 anymore.

The current exec mechanism copies required handle values (handles to
keep contact to the child processes) into the child_info for the
about-to-be-exec'ed process.  The exec'ed process is supposed to
duplicate these handles.  This fails, given that we don't allow the
exec'ed process PROCESS_DUP_HANDLE access to the exec'ing process since
commit 5a0f2c00aa.

The fix is to avoid the DuplicateHandle calls in the exec'ed process.

This patch sets the affected handles to "inheritable" in the exec'ing
process at exec time.  The exec'ed process just copies the handle values
and resets handle inheritance to "non-inheritable".  The exec'ing
process doesn't have to reset handle inheritance, it exits after setting
up the exec'ed process anyway.

Testcase: $ ssh-agent /bin/sleep 3

ssh-agent forks and the parent exec's sleep.  After sleep exits, `ps'
should show ssh-agent to have PPID 1, and eventually ssh-agent exits.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-10-14 10:54:04 -04:00
Anton Lavrentiev via cygwin-patches
2bec29526b Cygwin: getpriority() consistent with process priority
https://cygwin.com/ml/cygwin/2019-08/msg00122.html
2020-10-14 10:54:03 -04:00
Achim Gratz
a8fb9ff53a Cygwin: Provide more COM devices
Provide for 128 COM devices since Windows likes to create lots of these
over time (one per identifiable device and USB port).
2020-10-14 10:54:03 -04:00
Ken Brown
418dd3f508 Cygwin: spawnvp, spawnvpe: fail if executable is not in $PATH
Call find_exec with the FE_NNF flag to enforce a NULL return when the
executable isn't found in $PATH.  Convert NULL to "".  This aligns
spawnvp and spawnvpe with execvp and execvpe.
2020-10-14 10:54:03 -04:00
Takashi Yano
5c02c7f241 Cygwin: pty: Change the timing of clear screen. 2020-10-14 10:54:03 -04:00
Takashi Yano
643b960c40 Cygwin: pty: Avoid detach console in the process running as service. 2020-10-14 10:54:03 -04:00
Ken Brown
1e8370c1c1 Cygwin: mkdir and rmdir: treat drive names specially
If the directory name has the form 'x:' followed by one or more
slashes or backslashes, and if there's at least one backslash, assume
that the user is referring to 'x:\', the root directory of drive x,
and don't strip the backslash.

Previously all trailing slashes and backslashes were stripped, and the
name was treated as a relative file name containing a literal colon.

Addresses https://cygwin.com/ml/cygwin/2019-08/msg00334.html.
2020-10-14 10:54:03 -04:00
Ken Brown
faf0c0f8b0 Cygwin: document recent changes to format_proc_cpuinfo 2020-10-14 10:54:03 -04:00
Brian Inglis
e73d74d4f9 fhandler_proc.cc(format_proc_cpuinfo): or model extension bits
or model extension bits into model high bits instead of adding
arithmetically like family extension.
2020-10-14 10:54:02 -04:00
Brian Inglis
792c4257bf fhandler_proc.cc(format_proc_cpuinfo): comment flags not reported
Comment out flags not reported by Linux in cpuinfo, although some
flags may not be used at all by Linux.
2020-10-14 10:54:02 -04:00
Brian Inglis
f4381eaf1c fhandler_proc.cc(format_proc_cpuinfo): add feature flags
Add 99 feature flags including AVX512 extensions, AES, SHA with 20
cpuid calls.
2020-10-14 10:54:02 -04:00
Brian Inglis
dcb5d25fde fhandler_proc.cc(format_proc_cpuinfo): use feature test print macro
Add feature test print macro that makes feature, bit, and flag text
comparison and checking easier.  Handle as common former Intel only
feature flags also supported on AMD.  Change order and some flag names
to agree with current Linux.
2020-10-14 10:54:02 -04:00
Brian Inglis
169b9e093f fhandler_proc.cc(format_proc_cpuinfo): add microcode
Add microcode from Windows registry Update Revision REG_BINARY.
2020-10-14 10:54:02 -04:00
Brian Inglis
9fcee9bb1e fhandler_proc.cc(format_proc_cpuinfo): add bogomips
Add bogomips which has been cpu MHz*2 since Pentium MMX.
2020-10-14 10:54:02 -04:00
Brian Inglis
996295780b fhandler_proc.cc(format_proc_cpuinfo): round cpu MHz
Round cpu MHz to correct Windows and match Linux cpuinfo.
2020-10-14 10:54:02 -04:00
Brian Inglis
9f73e24847 fhandler_proc.cc(format_proc_cpuinfo): fix AMD physical cores count
Fix AMD physical cores count documented as core_info low byte + 1.
2020-10-14 10:54:02 -04:00
Brian Inglis
6234028f99 fhandler_proc.cc(format_proc_cpuinfo): fix cpuid level count
Fix cpuid level count as number of non-zero leafs excluding sub-leafs.
2020-10-14 10:54:02 -04:00
Brian Inglis
148a282868 fhandler_proc.cc(format_proc_cpuinfo): fix cache size
Fix cache size return code handling and make AMD/Intel code common.
2020-10-14 10:54:02 -04:00
Takashi Yano
ca4bce2094 Cygwin: Fix signal handling issue introduced by PTY related change.
- After commit 41864091014b63b0cb72ae98281fa53349b6ef77, there is a
  regression in signal handling reported in
  https://www.cygwin.com/ml/cygwin/2019-10/msg00010.html. This patch
  fixes the issue.
2020-10-14 10:54:02 -04:00
Ken Brown
632f2bbbfc Document the last bug fix 2020-10-14 10:54:02 -04:00
Ken Brown
2df029168f Cygwin: normalize_win32_path: improve error checking
If the source path starts with the Win32 long path prefix '\\?\' or
the NT object directory prefix '\??\', require the prefix to be
followed by 'UNC\' or '<drive letter>:\'.  Otherwise return EINVAL.

This fixes the assertion failure in symlink_info::check that was
reported here:

  https://cygwin.com/ml/cygwin/2019-09/msg00228.html

That assertion failure was caused by normalize_win32_path returning a
path with no backslashes when the source path was '\\?\DRIVE'.
2020-10-14 10:54:02 -04:00
Takashi Yano
0479adc860 Cygwin: pty: Fix PTY so that cygwin setup shows help with -h option.
- After commit 169d65a5774acc76ce3f3feeedcbae7405aa9b57, cygwin
  setup fails to show help message when -h option is specified, as
  reported in https://cygwin.com/ml/cygwin/2019-09/msg00248.html.
  This patch fixes the problem.
2020-10-14 10:54:02 -04:00
Ken Brown
18cb14020e Document the last change 2020-10-14 10:54:01 -04:00
Ken Brown
0b56018163 Cygwin: rmdir: fail if last component is a symlink, as on Linux
If the last component of the directory name is a symlink followed by a
slash, rmdir now fails, following Linux but not POSIX, even if the
symlink resolves to an existing empty directory.

mkdir was similarly changed in 2009 in commit
52dba6a5c45e8d8ba1e237a15213311dc11d91fb.  Modify a comment to clarify
the purpose of that commit.

Addresses https://cygwin.com/ml/cygwin/2019-09/msg00221.html.
2020-10-14 10:54:01 -04:00
Ken Brown
e0d56b3ec1 Cygwin: remove old cruft from path_conv::check
Prior to commit b0717aae, path_conv::check had the following code:

      if (strncmp (path, "\\\\.\\", 4))
        {
          /* Windows ignores trailing dots and spaces in the last path
             component, and ignores exactly one trailing dot in inner
             path components. */
          char *tail = NULL;
          [...]
          if (!tail || tail == path)
            /* nothing */;
          else if (tail[-1] != '\\')
            {
              *tail = '\0';
          [...]
        }

Commit b0717aae0 intended to disable this code, but it inadvertently
disabled only part of it.  In particular, the declaration of the local
tail variable was in the disabled code, but the following remained:

          if (!tail || tail == path)
            /* nothing */;
          else if (tail[-1] != '\\')
            {
              *tail = '\0';
          [...]
        }

[A later commit removed the disabled code.]

The tail variable here points into a string different from path,
causing that string to be truncated under some circumstances.  See

  https://cygwin.com/ml/cygwin/2019-09/msg00001.html

for more details.

This commit fixes the problem by removing the leftover code
that was intended to be removed in b0717aae.
2020-10-14 10:54:01 -04:00
Takashi Yano
a8264931e4 Cygwin: Fix incorrect TTY for non-cygwin process.
- After commit d4045fdbef60d8e7e0d11dfe38b048ea2cb8708b, the TTY
  displayed by ps command is incorrect if the process is non-cygwin
  process. This patch fixes this issue.
2020-10-14 10:54:01 -04:00
Takashi Yano
0269c1d8fa Cygwin: console: Make console input work in GDB and strace.
- After commit 2232498c712acc97a38fdc297cbe53ba74d0ec2c, console
  input cause error in GDB or strace. This patch fixes this issue.
2020-10-14 10:54:01 -04:00