summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
...
* * 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.
* * path.cc (symlink_info::check): Add a check to return correctlyCorinna Vinschen2001-05-252-1/+6
| | | | if incoming `*.lnk' file is not a symlink.
* * path.cc (slash_drive_prefix_p): Remove.Christopher Faylor2001-05-253-45/+20
| | | | | | | | (mount_info::slash_drive_to_win32_path): Ditto. (mount_info::conv_to_win32_path): Remove slash drive prefix check. (mount_info::add_item): Ditto. (mount_info::del_item): Ditto. * shared_info.h (mount_info): Remove slash_drive_to_win32_path declaration.
* * exceptions.cc (handle_exceptions): Bump repeat count for debugging kick out.Christopher Faylor2001-05-244-12/+36
| | | | | | | | | | * fhandler.h (fhandler_dev_dsp): Add a fixup_after_exec. * fhandler_dsp.cc (class Audio): Add TOT_BLOCK_SIZE to enum. (operator new): New. (bigwavebuffer): Declare using TOT_BLOCK_SIZE to avoid buffer overruns. (Audio::Audio): Optimize slightly. (fhandler_dev_dsp::open): Allocate s_audio using static buffer. (fhandler_dev_dsp::fixup_after_exec): New function. Ditto.
* * syscalls.cc (seteuid): Restrict overriding external providedCorinna Vinschen2001-05-232-13/+28
| | | | | | user tokens to ntsec. Don't test external tokens for primary group to evaluate if it should be overridden. Restrict creating internal tokens to ntsec.
* * syscalls.cc (chown_worker): Don't check for ENOSYS.Corinna Vinschen2001-05-232-6/+10
|
* * signal.cc (sleep): Protect with sigframe.Christopher Faylor2001-05-222-0/+5
|
* * security.cc (get_file_attribute): Don't set errno.Corinna Vinschen2001-05-222-2/+4
|
* * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off.Christopher Faylor2001-05-213-15/+22
| | | | * configure: Regenerate.
* * include/cygwin/version.h: Bump minor version number.Christopher Faylor2001-05-212-1/+5
|
* * fhandler_dsp.cc: Reformat to GNU standards.Christopher Faylor2001-05-202-282/+293
| | | | | (s_audio): Change to a pointer throughout. (fhandler_dev_dsp::open): Initialize s_audio, if required.
* * autoload.cc: Add load statements for `LookupAccountNameW',Corinna Vinschen2001-05-209-161/+1041
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `LsaClose', `LsaEnumerateAccountRights', `LsaFreeMemory', `LsaOpenPolicy', `LsaQueryInformationPolicy', `NetLocalGroupEnum', `NetLocalGroupGetMembers', `NetServerEnum', `NetUserGetGroups' and `NtCreateToken'. * ntdll.h: Add declaration for `NtCreateToken'. * sec_helper.cc: Add `well_known_local_sid', `well_known_dialup_sid', `well_known_network_sid', `well_known_batch_sid', `well_known_interactive_sid', `well_known_service_sid' and `well_known_authenticated_users_sid'. (cygsid::string): Define as const method. (cygsid::get_sid): Set psid to NO_SID on error. (cygsid::getfromstr): Ditto. (cygsid::getfrompw): Simplify. (cygsid::getfromgr): Check for gr == NULL. (legal_sid_type): Move to security.h. (set_process_privilege): Return -1 on error, otherwise 0 or 1 related to previous privilege setting. * security.cc (extract_nt_dom_user): Remove `static'. (lsa2wchar): New function. (open_local_policy): Ditto. (close_local_policy): Ditto. (get_lsa_srv_inf): Ditto. (get_logon_server): Ditto. (get_logon_server_and_user_domain): Ditto. (get_user_groups): Ditto. (is_group_member): Ditto. (get_user_local_groups): Ditto. (sid_in_token_groups): Ditto. (get_user_primary_group): Ditto. (get_group_sidlist): Ditto. (get_system_priv_list): Ditto. (get_priv_list): Ditto. (get_dacl): Ditto. (create_token): Ditto. (subauth): Return immediately if SE_TCB_NAME can't be assigned. Change all return statements in case of error to jumps to `out' label. Add `out' label to support cleanup. * security.h: Add extern declarations for `well_known_local_sid', `well_known_dialup_sid', `well_known_network_sid', `well_known_batch_sid', `well_known_interactive_sid', `well_known_service_sid' and `well_known_authenticated_users_sid'. Add extern declarations for functions `create_token', `extract_nt_dom_user' and `get_logon_server_and_user_domain'. (class cygsid): Add method `assign'. Change operator= to call new `assign' method. Add `debug_print' method. (class cygsidlist): New class. (legal_sid_type): Moved from sec_helper.cc to here. * spawn.cc (spawn_guts) Revert reversion of previous patch. Call `RevertToSelf' and `ImpersonateLoggedOnUser' instead of `seteuid' again. * syscalls.cc (seteuid): Rearranged. Call `create_token' now when needed. Call `subauth' if `create_token' fails. Try setting token owner and primary group only if token was not explicitely created by `create_token'. * uinfo.cc (internal_getlogin): Try harder to generate correct user information. Especially don't trust return value of `GetUserName'.
* * fork.cc (fork_parent): Move atforkprepare call here.Christopher Faylor2001-05-202-5/+10
| | | | (fork): From here.
* * autoload.cc: Add missing load statement for `CancelIo'.Corinna Vinschen2001-05-192-0/+5
|
* * grp.cc (read_etc_group): Don't copy mutex on fork.Christopher Faylor2001-05-194-11/+12
| | | | | | * pwd.cc (read_etc_passwd): Ditto. * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL specific area.
* * net.cc (wsock_event::wait): Explicitely cancel IO when a signalCorinna Vinschen2001-05-182-1/+13
| | | | | arrived to avoid data loss. Fallback to blocking IO when canceling fails.
* * security.cc (cygwin_set_impersonation_token): Never destroyCorinna Vinschen2001-05-172-3/+8
| | | | | previous token object. (subauth): Create token source with well defined identifier.
* * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE.Corinna Vinschen2001-05-162-1/+6
| | | | Token value is already invalid at that point.
* * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR.Corinna Vinschen2001-05-162-0/+5
|
* * sec_helper.cc (legal_sid_type): Fix conditional. Change toCorinna Vinschen2001-05-162-3/+8
| | | | inline function.
* * autoload.h: Eliminate.Christopher Faylor2001-05-165-235/+295
| | | | | | | | | | * autoload.cc: Pull in autoload.h. Eliminate many macros. Rewrite to avoid necessity of initialization routines. Just use a standard one. (wsock_init): New function. Moved from net.cc. * net.cc (wsock_init): Move to autoload.cc. (wsadata): Make global. * dtable.cc (dtable::build_fhandler): Use more reliable method for checking if net stuff has been loaded.
* * fork.cc (fork): Eliminate superfluous call to getuid().Corinna Vinschen2001-05-1512-163/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * security.h: New define `NO_SID'. Remove declarations of functions moved to methods into class cygsid. (class cygsid): Declare new methods `getfromstr', `get_sid', `getfrompw', `getfromgr', `get_rid', `get_uid', `get_gid', `string' and new constructors and operators =, == and !=. Declare new global cygsids `well_known_XXX_sid' substituting the corresponding `get_XXX_sid' functions. Remove declarations of these functions. * sec_helper.cc (well_known_admin_sid): New global variable. (well_known_system_sid): Ditto (well_known_creator_owner_sid): Ditto (well_known_world_sid): Ditto (cygsid::string): New method, substituting `convert_sid_to_string_sid'. (cygsid::get_sid): New method, substituting `get_sid'. (cygsid::getfromstr): New method, substituting `convert_string_sid_to_sid'. (cygsid::getfrompw): New method, substituting `get_pw_sid'. (cygsid::getfromgr): New method, substituting `get_gr_sid'. (cygsid::get_id): New method, substituting `get_id_from_sid'. (get_admin_sid): Eliminated. (get_system_sid): Ditto. (get_creator_owner_sid): Ditto. (get_world_sid): Ditto. * grp.cc: Use new cygsid methods and well known sids throughout. * registry.cc: Ditto. * sec_acl.cc: Ditto. * security.cc: Ditto. * shared.cc: Ditto. * syscalls.cc (seteuid): Ditto. Eliminate redundant conditional. * uinfo.cc (internal_getlogin): Ditto. * spawn.cc (spawn_guts) Revert previous patch.
* * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addrCorinna Vinschen2001-05-152-1/+7
| | | | field to host byte order before comparing with INADDR_LOOPBACK.
* * autoload.cc: Add autoload statements for ws2_32 functionsCorinna Vinschen2001-05-154-25/+191
| | | | | | | | | | | | | | `WSACloseEvent', `WSACreateEvent', `WSAGetOverlappedResult', `WSARecv', `WSARecvFrom', `WSASend', `WSASendTo' and `WSASetEvent', `WSAWaitForMultipleEvents'. * net.cc: Define wsock_evt. (wsock_event): New class. (cygwin_sendto): Use overlapped socket io if available. (cygwin_recvfrom): Ditto. (cygwin_recv): Ditto. (cygwin_send): Ditto. * security.cc (subauth): Set Win32 error to 0 to safely ask for the error code of dynamically loaded function `LsaRegisterLogonProcess'.
* * errno.cc (_sys_errlist): Add missing commas.Christopher Faylor2001-05-142-2/+6
|
* * security.cc (subauth): Check if Secur32.dll could be loaded.Corinna Vinschen2001-05-142-0/+9
|
* * path.cc (path_conv::check): Revert allow_ntsec check so that volume info isChristopher Faylor2001-05-142-2/+7
| | | | always retrieved and isdisk setting is properly set.
* Fix formatting.Christopher Faylor2001-05-141-4/+4
|
* * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when duping aChristopher Faylor2001-05-132-1/+6
| | | | filehandle.
* * dir.cc (rmdir): Rearrange slightly to allow removing directoriesCorinna Vinschen2001-05-122-13/+34
| | | | even when R/O attribute is set.
* * external.cc (fillout_pinfo): Use correct pids.Christopher Faylor2001-05-113-3/+11
| | | | | * path.cc (mount_info::conv_to_win32_path): Correct test for whether to include a slash.
* * exceptions.cc (handle_exceptions): Don't print message when executing from aChristopher Faylor2001-05-112-2/+7
| | | | cygwin program.
* Christopher Faylor <cgf@redhat.com>Christopher Faylor2001-05-112-9/+49
| | | | | * environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to win32-style environment if they don't already exist.