summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success.Christopher Faylor2001-06-292-6/+10
|
* Change check_null_empty_path* to check_null_empty_str* throughout.Christopher Faylor2001-06-2810-54/+88
| | | | | | | | | | | | | | | * path.cc (path_conv::check): Add signal protection here since retrieving info about remote shares can take some time. * path.h (check_null_empty_str_errno): Convert to a function prototype. * path.cc (check_null_empty_str): Move to miscfuncs.cc. * miscfuncs.cc (check_null_empty_str_errno): New function. (__check_null_invalid_struct): Ditto. (__check_null_invalid_struct_errno): Ditto. (check_null_empty_str): Change from VirtualQuery to IsBadWritePtr. * thread.cc (check_valid_pointer): Ditto. * resource.cc (getrlimit): Use check_null_invalid_struct macro for checking validity of pointer. (setrlimit): Ditto.
* * fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3 charactersChristopher Faylor2001-06-264-5/+28
| | | | | | | | | being read for executable test since we could be checking for less than that. * syscalls.cc (stat_worker): Try opening the file the "correct" way first so that #! processing can potentially happen. If that fails, then use "query open" method. * spawn.cc (spawn_guts): Delay processing of signal until after we've notified parent about reparenting.
* Remove trailing tabs.Christopher Faylor2001-06-262-2/+2
|
* * mmap.cc: Clean up *ResourceLock calls throughout.Christopher Faylor2001-06-2615-460/+484
| | | | | | | * thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well as WAIT_ABANDONED. (__pthread_cond_timedwait): Calculate a relative wait from the abstime parameter.
* forced commitChristopher Faylor2001-06-241-0/+3
|
* Fix typoChristopher Faylor2001-06-241-1/+1
|
* * exceptions.cc (interrupt_setup): Move actions from setup_handler to here.Christopher Faylor2001-06-246-75/+84
| | | | | | | | | (setup_handler): Move actions after a successful interrupt to interrupt_setup. * fork.cc (vfork): Augment debugging output. * sigproc.cc (proc_subproc): Ditto. * spawn.cc (spawn_guts): Ditto. Correctly fill out progname when spawn NO_WAIT. Call signal handler when a signal arrives. * sigproc.h: Declare a function.
* * fhandler.h class fhandler_socket): Declare new methodCorinna Vinschen2001-06-223-0/+17
| | | | | | `set_close_on_exec'. * fhandler_socket.cc (fhandler_socket::set_close_on_exec): New method.
* * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set sizeCorinna Vinschen2001-06-222-1/+6
| | | | parameter to value expected by GetTapeParameters().
* * fhandler_console.cc (fhandler_console::read): Detect AltGr moreCorinna Vinschen2001-06-222-2/+25
| | | | robustly on WinNT.
* 2001-06-22 Robert Collins rbtcollins@hotmail.comRobert Collins2001-06-212-2/+8
| | | | | | * thread.cc (__pthread_cond_timedwait): Lock the waiting mutex before the condition protect mutex to avoid deadlocking. (Found by Greg Smith). (__pthread_cond_wait): Ditto.
* * fhandler.cc (fhandler_base::open): Work around windows bug whenEgor Duda2001-06-202-0/+17
| | | | | CreateFile() with dwDesiredAccess == 0 called on remote share returns valid handle even if file doesn't exist.
* * fhandler_socket.cc (fhandler_socket::signal_secret_event): NewEgor Duda2001-06-204-15/+44
| | | | | | | | | | | function. * fhandler.h: Declare it. * fhandler_socket.cc (fhandler_socket::create_secret_event): Don't signal secret event immediately. (fhandler_socket::check_peer_secret_event): Do it after peer event was opened. * net.cc (cygwin_connect): Or if socket is non-blocking. (cygwin_accept): Ditto.
* * fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change.Christopher Faylor2001-06-184-64/+99
| | | | | | | | | * fork.cc (fork_copy): Print more debugging info. (fork_parent): Change order of arguments to accomdate buggy gcc. (fork): Ditto. * syscalls.cc (_unlink): Reorganize to try harder to delete file with DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE doesn't work properly.
* * exceptions.cc (sig_handle_tty_stop): Reset PID_STOPPED if not actuallyChristopher Faylor2001-06-166-8/+25
| | | | | | | | | | stopping. * fhandler_console.cc (fhandler_console::fixup_after_fork): Don't set controlling terminal if just inheriting a handle. (fhandler_console::fixup_after_exec): Ditto. * fhandler_tty.cc (fhandler_tty_slave::init): Ditto. * signal.cc (kill_worker): Set appropriate errno if proc_exists determines that process does not really exist.
* * path.cc (path_conv::check): Deal more robustly with foo/ behavior.Christopher Faylor2001-06-152-6/+10
|
* * fhandler_tape.cc (fhandler_dev_tape::tape_status): Set sizeCorinna Vinschen2001-06-152-1/+9
| | | | parameter to value expected by GetTapeParameters().
* * fhandler.cc (fhandler_disk_file::fstat): Properly set executable bits forChristopher Faylor2001-06-152-44/+40
| | | | | directory when !ntsec && !ntea. Also move common code prior to call to get_attributes.
* * thread.cc (pthread_cond::Signal): Release the condition access variableChristopher Faylor2001-06-142-1/+11
| | | | correctly.
* * fhandler.cc (fhandler_base::open): Set win32 access flagsEgor Duda2001-06-144-21/+40
| | | | | | | | to 0, when requested. * fhandler.h: New status flag FH_QUERYOPEN. (fhandler::get_query_open): New function. (fhandler::set_query_open): Ditto. * syscalls.cc (stat_worker): Request query-only open mode.
* * environ.cc (set_file_api_mode): New function. Move settingEgor Duda2001-06-124-4/+29
| | | | | | | of file APIs mode (OEM/ANSI) here. (codepage_init): From here. * winsup.h (set_file_api_mode): Declare it. * fork.cc (fork_child): Set file APIs mode in forkee.
* Add missing entry.Christopher Faylor2001-06-111-1/+5
|
* * pinfo.cc: Use autoloaded ToolHelp functions throughout for Win9x.Christopher Faylor2001-06-114-36/+31
| | | | * autoload.cc: Autoload ToolHelp functions.
* * path.cc (chdir): Fix call to path_conv constructor so that it REALLY doesn'tChristopher Faylor2001-06-112-2/+7
| | | | check for the null/non-empty path.
* * path.cc (path_conv::update_fs_info): Don't consider remote drives to be NTFS.Christopher Faylor2001-06-112-18/+22
| | | | | Set root_dir before invoking GetDriveType (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>). Eliminate extra checks for rootdir.
* * path.cc (chdir): Pre-check path for validity before eating trailing space.Christopher Faylor2001-06-112-7/+32
| | | | Then, ensure that path_conv doesn't check the path for validity again.
* * exceptions.cc (sigdelayed): Ensure that signal is cleared as the lastChristopher Faylor2001-06-103-4/+17
| | | | | operation or suffer races. * sigproc.cc (proc_subproc): Deal with zombie array overflow.
* * cygwin.din: Add fchdir symbols.Corinna Vinschen2001-06-105-10/+36
| | | | | | | * path.cc (chdir): Guard against invalid parameter. (fchdir): New function. * include/cygwin/version.h: Bump API minor version to 40. * uinfo.cc (internal_getlogin): Remove unused variable.
* * syscalls.cc (seteuid): Set environment variables USERNAME andCorinna Vinschen2001-06-093-84/+185
| | | | | | | | | USERDOMAIN before impersonation to workaround a LookupAccountSid() misbehaviour. * uinfo.cc (internal_getlogin): Revert most of the previous change. Don't set environment variables USERNAME and USERDOMAIN. That's the job of seteuid() now. Try to get logon server from Lsa only if logon server isn't already known.
* * thread.cc (pthread_cond::Broadcast): Don't print error messages on invalidChristopher Faylor2001-06-072-1/+16
| | | | | | mutexs - user programs are allowed to call pthread_cond_broadcast like that. (__pthread_cond_timedwait): Initialise themutex properly. (__pthread_cond_wait): Initialise themutex properly.
* * fhandler_console.cc (fhandler_console::dup): Allocate space forCorinna Vinschen2001-06-052-6/+12
| | | | | savebuf on Cygwin heap. (fhandler_console::char_command): Ditto. Use correct values for size.
* * security.h (NTWriteEA): Change prototype.Egor Duda2001-06-057-38/+140
| | | | | | | | | | | | | | | | | | | * ntea.cc (NTReadEA): Don't check for global ntea setting, now it's caller responsibility. (NTWriteEA): Ditto. * security.cc (get_file_attribute): Read attribute from EA only if 'ntea' is enabled. (set_file_attribute): Ditto. * path.h: (class path_conv): Add members to store file system information. (path_conv::get_drive_type): New function. * syscalls.cc (stat_worker): Use it. * path.cc (path_conv::update_fs_info): New functions. (path_conv::check): Get file system information from device where file resides. On NTFS, try to read symlink contents from EA. (get_symlink_ea): New function. (set_symlink_ea): Ditto. (symlink): Store symlink in extended attribute, if possible.
* * fhandler.cc (fhandler_disk_file::fstat): Always reset file positionCorinna Vinschen2001-06-052-8/+20
| | | | to original value after checking for executable magic.
* * cygheap.h (cygheap_user::cygheap_user): Initialize token toCorinna Vinschen2001-06-043-1/+10
| | | | | INVALID_HANDLE_VALUE. * uinfo.cc (uinfo_init): Close token handle if needed.
* * path.cc (normalize_posix_path): Revert .. check removed by previous changes.Christopher Faylor2001-06-045-26/+39
| | | | * cygheap.h: Temporarily declare path_prefix_p here.
* * net.cc (wsock_event): Add destructor.Corinna Vinschen2001-06-032-0/+10
|
* * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close wasChristopher Faylor2001-06-032-1/+8
| | | | obtained by dlopen(NULL,...).
* * syscalls.cc (sleep): Try to be a little more accomodating of signal arrival.Christopher Faylor2001-06-032-7/+17
| | | | Ensure that the signal handler is called.
* * cygheap.cc (cygheap_root::cygheap_rot): Remove constructor.Christopher Faylor2001-06-037-138/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cygheap_root::~cygheap_root): Remove destructor. (cygheap_root::operator =): Remove. (cygheap_root::set): New method. * cygheap.h (cygheap_root): Reflect above changes. Store root info in mount-like structure. (cygheap_root:posix_ok): New method. (cygheap_root::ischroot_native): Ditto. (cygheap_root::unchroot): Ditto. (cygheap_root::exists): Ditto. (cygheap_root::posix_length): Ditto. (cygheap_root::posix_path): Ditto. (cygheap_root::native_length): Ditto. (cygheap_root::native_path): Ditto. * dir.cc (opendir): Remove special chroot test. * path.cc (path_prefix_p): Remove front end. (normalize_posix_path): Reorganize chroot tests to accomodate new convention of allowing paths using posix chroot prefix. (path_conv::check): Pass a "already ran normalize" option to conv_to_win32_path. Return if there is an error from this function. (mount_info::conv_to_win32_path): Add extra argument. Don't call normalize_posix_path if caller has already done so. Substitute chroot setting, if any, for root translation. Add chroot checking to final output step. * shared_info (mount_info): Accomodate additional argument to conv_to_win32_path. * syscalls.cc (chroot): Store both normalized posix path and native path in chroot.
* * path.cc (chdir): Really make sure that isspace gets only an unsigned char.Christopher Faylor2001-06-012-1/+6
|
* * syscalls.cc (_rename): Handle the case that `foo' is renamed toCorinna Vinschen2001-06-012-8/+33
| | | | `bar' while `bar.lnk' is an existing shortcut-symlink.
* revert.Christopher Faylor2001-06-011-14/+14
|
* * fhandler.cc (fhandler_disk_file::fstat): Avoid clearing S_IFMT bits sinceChristopher Faylor2001-05-312-3/+11
| | | | we've already pre-cleared everything anyway.
* Maintain 80 col line length.Christopher Faylor2001-05-311-1/+2
|
* * path.cc (chdir): Always send unsigned chars to isspace since newlib's isspaceChristopher Faylor2001-05-318-62/+91
| | | | | | | | | | | | | | | | | | | | doesn't deal well with "negative" chars. * fhandler.cc (fhandler_disk_file::open): Propagate remote status of file garnered from path_conv. Move #! checking to fstat. (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate duplication. Move check for #! here from fhandler::open. * fhandler.h (fhandler_base::isremote): New method. (fhandler_base::set_isremote): Ditto. (fhandler_base::set_execable_p): Also record "don't care if executable state". (fhandler_base::dont_care_if_execable): New method. * path.cc (path_conv::check): Clear new flags. Appropriately set vol_flags, drive_type, and is_remote_drive. * path.h: Add new flags and methods for manipulating them. * syscalls.cc (_unlink): Use isremote() to determine if a path is remote rather than calling GetDriveType. (stat_worker): Ditto. * security.cc (get_file_attribute): Or attribute with result of NTReadEA to be consistent with get_nt_attribute.
* * sec_helper.cc (cygsid::getfrompw): Change parameter to `const'.Corinna Vinschen2001-05-295-190/+140
| | | | | | | | | | | (cygsid::getfromgr): Ditto. * security.cc: Use `sys_mbstowcs' and `sys_wcstombs' throughout. (extract_nt_dom_user): Try to get user and domain from SID in pw->pw_gecos first. * security.h (class cygsid): Change parameter of getfrompw() and getfromgr() to `const'. * uinfo.cc (internal_getlogin): Change order for evaluating user information in winNT case. Drop usage of NetWkstaUserGetInfo().
* Avoid NAME too long error.Christopher Faylor2001-05-291-14/+14
|
* * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.Corinna Vinschen2001-05-292-2/+9
|
* * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use this toChristopher Faylor2001-05-252-15/+20
| | | | | determine if user specified 'foo.lnk' explicitly. Reorganize slightly to get rid of one goto.