Commit Graph

11578 Commits

Author SHA1 Message Date
Corinna Vinschen 0aa99373c1 Cygwin: fcntl.h: Define O_TMPFILE and implement it
Difference to Linux: We can't create files which don't show up
in the filesystem due to OS restrictions.  As a kludge, make a
(half-hearted) attempt to hide the file in the filesystem.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-14 21:45:25 +01:00
Corinna Vinschen f94fe74aad Cygwin: open: cleanup code in preparation of O_TMPFILE
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-14 16:30:44 +01:00
Corinna Vinschen 181fe5d2ed cygwin: pread: Remove incorrect comment
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-08 13:36:34 +01:00
Corinna Vinschen c983aa4879 cygwin: fhandler_disk_file::pread: always print debug info on return
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-08 13:30:42 +01:00
Xiaofeng Liu 46702f92ea cygwin: pread() returns non-zero if read beyond EOF
NtReadFile returns EOF status but doesn't set information to 0.
Set return value explicitly on EOF.
2017-11-08 13:21:30 +01:00
Corinna Vinschen 2e989b2129 cygwin: fix stray semicolon
introduced by patch 1c50e0d1ab

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-07 16:34:29 +01:00
Corinna Vinschen 2640628b09 cygwin: add socket bugfix to release notes
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-07 16:11:08 +01:00
Erik M. Bray 1c50e0d1ab Fix two bugs in the limit of large numbers of sockets:
* Fix the maximum number of sockets allowed in the session to 2048,
  instead of making it relative to sizeof(wsa_event).

  The original choice of 2048 was in order to fit the wsa_events array
  in the .cygwin_dll_common shared section, but there is still enough
  room to grow there to have 2048 sockets on 64-bit as well.

* Return an error and set errno=ENOBUF if a socket can't be created
  due to this limit being reached.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-07 16:08:14 +01:00
Corinna Vinschen ad15b8ccee cygwin: ftruncate64: add missing braces
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-02 19:13:09 +01:00
Corinna Vinschen 09d60f6444 cygwin: add 2.9.1 release messages file
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-11-02 18:09:39 +01:00
Erik M. Bray 94854321bb posix_fallocate() *returns* error codes but does not set errno
Also updates the fhandler_*::ftruncate implementations to adhere to the same
semantics.  The error handling semantics of those syscalls that use
fhandler_*::ftruncate are moved to the implementations of those syscalls (
in particular ftruncate() and friends still set errno and return -1 on error
but that logic is handled in the syscall implementation).
2017-11-02 18:01:01 +01:00
Erik M. Bray 8c8cdd9ad7 posix_fadvise() *returns* error codes but does not set errno
Also updates the fhandler_*::fadvise implementations to adhere to the same
semantics.
2017-11-02 17:58:18 +01:00
Ken Brown 3e8323dc06 winsup/utils/dump_setup.cc: Remove the function 'base'
This was called only on filenames in /etc/setup/installed.db, which
are all basenames anyway.  Moreover, base wasn't correctly handling
filenames containing colons.
2017-10-25 17:02:26 +02:00
Corinna Vinschen 3bdd484103 cygwin: belatedly bump DLL minor version
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:40:56 +02:00
Corinna Vinschen 88cfcda06b cygwin: unlink: workaround NFS non-ability to move file in certain cases
Under some not quite clear conditions, NFS fails to use its
unlink workaround to rename a file to ".nfsXYZ".  The problem has been
reproduced with the GAWK testext.awk testcase.  To workaround this in
Cygwin, we now call try_to_bin on NFS, too.  For some reason NFS doesn't
fail to rename the .cygXYZ file to .nfsXYZ after this Cygwin rename.
Fix comment in unlink_nt accordingly.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:27:17 +02:00
Corinna Vinschen 5b7921523d cygwin: unlink: don't try "final trick" in try_to_bin on NFS
Doesn't work.  Just another STATUS_SHARING_VIOLATION.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:22:14 +02:00
Corinna Vinschen e6c79e7a2a cygwin: unlink: fix "final trick" overwrite method on remote drives
The "final trick" code in try_to_bin accidentally never worked on
remote drives because it relies on rootdir.  Which isn't set for
remote unlinks.  The code now creates a full path for remote files.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:21:12 +02:00
Corinna Vinschen 3dda58f157 cygwin: unlink: improve debug messages in try_to_bin
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:18:12 +02:00
Corinna Vinschen 9ac4c0325f cygwin: unlink: simplify rootdir handling
In try_to_bin, rootdir is NULL for remote drives anyway.  No extra
check required.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:15:08 +02:00
Corinna Vinschen 5224eb7517 cygwin: unlink: drop redundant check for netapp FS
The try_to_bin function isn't called for netapp FSes anyway, so testing
for this FS type in the function is moot.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:13:48 +02:00
Corinna Vinschen 7127e8ef3b cygwin: unlink: Fix typos in comments
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-18 16:12:42 +02:00
Yaakov Selkowitz 747f31854a cygwin: fix gethostbyaddr argument types
The first argument of gethostbyaddr needs to accept a generic pointer
to be compatible with e.g. struct in_addr *.  This caused an issue
compiling krb5-1.15.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-10-10 13:51:23 -05:00
Yaakov Selkowitz 0b45b053e8 Feature test macros overhaul: Cygwin netdb.h
herror etc. are MISC, rcmd etc. are BSD, addrinfo functions are
POSIX.1-2001, except for IDN functionality which is GNU.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-10-10 13:50:46 -05:00
Michael Haubenwallner 1adbd77cab cygwin: fix potential buffer overflow in fork
When fork fails, we can use "%s" now with system_sprintf for the errmsg
rather than a (potentially too small) buffer for the format string.

* fork.cc (fork): Use "%s" with system_printf now.
2017-10-10 15:51:06 +02:00
Michael Haubenwallner 4449971295 cygwin: fix potential buffer overflow in small_sprintf
With "%C" format string, argument may convert in up to MB_LEN_MAX bytes.
Relying on sys_wcstombs to add a trailing zero here requires us to
provide a large enough buffer.

* smallprint.c (__small_vsprintf): Use MB_LEN_MAX+1 bufsize for "%C".
2017-10-10 13:35:16 +02:00
Michael Haubenwallner 4bee8c48df cygwin: initialize variable for stack unwinding
The third argument of RtlLookupFunctionEntry actually is documented as
_Inout_opt_ for both x64 and ARM, although generic doc says _Out_ only.

* exceptions.cc (__unwind_single_frame): Initialize hist variable.
2017-10-09 18:58:52 +02:00
Corinna Vinschen 7346a162f2 cygwin: disable -Wframe-address warning only on GCC 6 or later
This is required as long as we don't have a GCC 6.x cross compiler
on Linux.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-10-09 18:08:10 +02:00
Ken Brown 51c6ef6b82 cygwin: Remove workaround for GCC 6 null pointer check warnings 2017-10-09 11:44:11 +02:00
Ken Brown 7212b571a5 cygwin: Remove comparison of 'this' to NULL in _pinfo::exists
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 5952d5f08f cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::kill
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown d17c45f200 cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::environ
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 6cd1978fc8 cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::fd
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 56f23a5107 cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::pipe_fhandler
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown d1ea8f4a46 cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::commune_request
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 911f7d628d cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::cmdline
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 571b7689bb cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::cwd
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown be436ad2a3 cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::root
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 504959d8fc cygwin: Remove comparison of 'this' to 'NULL' in _pinfo::fds
Fix all callers.
2017-10-09 11:44:11 +02:00
Ken Brown 47bbe23105 cygwin: Remove comparisons of 'this' to 'NULL' in fhandler_dsp.cc
Fix all callers.
2017-10-09 11:44:10 +02:00
Yaakov Selkowitz 05cfd1aed8 cygwin: workaround GCC 6 changes
GCC 6 includes a number of new warnings which cause Cygwin to either not
compile, or not work properly even if said warnings are ignored:

https://cygwin.com/ml/cygwin-developers/2017-09/msg00000.html
https://gcc.gnu.org/gcc-6/porting_to.html

For now, we use the flags necessary to revert to GCC 5 behaviour until we
can fix the code properly.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-09-12 14:30:34 -05:00
Yaakov Selkowitz 21a39b20a5 Revert "cygwin: only expose /dev/con{in,out,sole} when started from a Windows console"
This caused serious regressions when running from a cmd window:

https://cygwin.com/ml/cygwin/2017-09/msg00114.html

This reverts commit b706c6b479.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-09-11 23:07:55 -05:00
Sebastian Huber 4de8754bac Change time_t to 64-bit by default
In order to avoid the year 2038 problem, define time_t to a signed
integer with at least 64-bits.  The type for time_t can be forced to
long with the --enable-newlib-long-time_t configure option or with the
_USE_LONG_TIME_T system configuration define.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
2017-09-07 15:39:34 +02:00
Yaakov Selkowitz ff53f489fa cygwin: Document crypt_r
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2017-09-02 22:48:55 -05:00
Achim Gratz 5325111d03 Remove some dangerous advice from the FAQ 2017-09-02 20:41:43 +02:00
Corinna Vinschen cdbec10e79 cygwin: add strptime %F fix to release notes
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-08-29 21:12:21 +02:00
Brian Inglis d8e2463c75 winsup/cygwin/libc/strptime.cc(__strptime) fix %F width 2017-08-29 21:10:06 +02:00
Corinna Vinschen 4dfaef8141 cygwin: document %s support in strptime
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-08-29 11:16:13 +02:00
Corinna Vinschen cf8bf843f8 cygwin: export strnstr
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-08-25 18:00:46 +02:00
Brian Inglis 8324ab5e2a winsup/cygwin/libc/strptime.cc(__strptime) add %s support to strptime 2017-08-25 11:39:11 +02:00
Corinna Vinschen b706c6b479 cygwin: only expose /dev/con{in,out,sole} when started from a Windows console
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2017-08-23 17:43:41 +02:00