Commit Graph

1172 Commits

Author SHA1 Message Date
Christopher Faylor b9ce814089 * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use this to
determine if user specified 'foo.lnk' explicitly.  Reorganize slightly to get
rid of one goto.
2001-05-25 15:07:46 +00:00
Corinna Vinschen fdc5ebe9bf * path.cc (symlink_info::check): Add a check to return correctly
if incoming `*.lnk' file is not a symlink.
2001-05-25 08:31:57 +00:00
Christopher Faylor 86f41a0954 * path.cc (slash_drive_prefix_p): Remove.
(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.
2001-05-25 03:13:14 +00:00
Christopher Faylor 52cd2f88cd * exceptions.cc (handle_exceptions): Bump repeat count for debugging kick out.
* 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.
2001-05-24 05:20:17 +00:00
Corinna Vinschen 7b9a10a60c * syscalls.cc (seteuid): Restrict overriding external provided
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.
2001-05-23 15:49:22 +00:00
Corinna Vinschen 07d08883d8 * syscalls.cc (chown_worker): Don't check for ENOSYS. 2001-05-23 08:12:49 +00:00
Christopher Faylor 1d0f9ded2e * lib/mapi32.def: Add MAPISendMail. 2001-05-22 23:03:25 +00:00
Earnie Boyd 1f6e71f348 * include/w32api.h: Update version.
* Makefile.in: Ditto.
2001-05-22 20:51:47 +00:00
Christopher Faylor 43a190430b * signal.cc (sleep): Protect with sigframe. 2001-05-22 16:22:36 +00:00
Corinna Vinschen e7e956a7db * security.cc (get_file_attribute): Don't set errno. 2001-05-22 15:59:37 +00:00
Christopher Faylor 7cef8b61c4 * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off.
* configure: Regenerate.
2001-05-21 19:13:48 +00:00
Christopher Faylor f01fb5e796 * include/cygwin/version.h: Bump minor version number. 2001-05-21 15:50:36 +00:00
Corinna Vinschen b62456f42f * winsup.api/mmaptest01.c: Add log output.
* winsup.api/mmaptest02.c: Write log output to stdout.
        * winsup.api/mmaptest03.c: Ditto.
2001-05-21 09:03:38 +00:00
Christopher Faylor 1b72f36e89 * fhandler_dsp.cc: Reformat to GNU standards.
(s_audio): Change to a pointer throughout.
(fhandler_dev_dsp::open): Initialize s_audio, if required.
2001-05-20 17:31:06 +00:00
Corinna Vinschen 1fcc912f13 * autoload.cc: Add load statements for `LookupAccountNameW',
`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'.
2001-05-20 08:10:47 +00:00
Christopher Faylor df7cd7fb0c * Makefile.in: Use 'rm -f' when cleaning. 2001-05-20 04:25:02 +00:00
Christopher Faylor 975d20834f * fork.cc (fork_parent): Move atforkprepare call here.
(fork): From here.
2001-05-20 01:19:20 +00:00
Corinna Vinschen 69fb3121ce * autoload.cc: Add missing load statement for `CancelIo'. 2001-05-19 16:36:58 +00:00
Christopher Faylor 87f0d5ad99 * grp.cc (read_etc_group): Don't copy mutex on fork.
* pwd.cc (read_etc_passwd): Ditto.
* autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL specific
area.
2001-05-19 05:29:00 +00:00
Corinna Vinschen 0260054a8c * net.cc (wsock_event::wait): Explicitely cancel IO when a signal
arrived to avoid data loss. Fallback to blocking IO when canceling
        fails.
2001-05-18 08:33:33 +00:00
Corinna Vinschen f6b52c79f5 * include/winnt.h: Define SE_GROUP_LOGON_ID as unsigned to avoid
compiler warnings.
2001-05-17 21:13:10 +00:00
Corinna Vinschen a69eb9099b * include/ntdef.h: Protect definition of OBJECT_ATTRIBUTES against
previous definition in include/ntsecapi.h.
        * include/ntsecapi.h: Vice versa.
2001-05-17 15:16:37 +00:00
Corinna Vinschen 4293884185 * security.cc (cygwin_set_impersonation_token): Never destroy
previous token object.
        (subauth): Create token source with well defined identifier.
2001-05-17 13:31:45 +00:00
Corinna Vinschen 990577f0bd Revert accidentally checked in ChangeLog. 2001-05-17 13:28:32 +00:00
Corinna Vinschen f62a57f574 * cygsuba.c: Create token source with well defined identifier. 2001-05-17 13:26:15 +00:00
Corinna Vinschen 554504edd2 Add missing ChangeLog entry. 2001-05-17 08:23:47 +00:00
Corinna Vinschen 1cec72414b * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE.
Token value is already invalid at that point.
2001-05-16 21:53:18 +00:00
Corinna Vinschen 3065afdb13 * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR. 2001-05-16 19:40:45 +00:00
Corinna Vinschen 631af2e6a3 * include/winnt.h: Add defines for group attributes.
Add define for SYSTEM_LUID.
        Add missing types `PTOKEN_DEFAULT_DACL', `PTOKEN_OWNER' and
        `PTOKEN_PRIMARY_GROUP'.
2001-05-16 16:01:45 +00:00
Corinna Vinschen 486212579e * sec_helper.cc (legal_sid_type): Fix conditional. Change to
inline function.
2001-05-16 07:25:31 +00:00
Christopher Faylor d61b1993b3 * autoload.h: Eliminate.
* 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.
2001-05-16 05:07:51 +00:00
Corinna Vinschen 2b0a111fcf * fork.cc (fork): Eliminate superfluous call to getuid().
* 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.
2001-05-15 19:23:31 +00:00
Corinna Vinschen c7ded13728 * winsup.api/winsup.exp: Force linking all tests against binmode.o. 2001-05-15 10:03:01 +00:00
Corinna Vinschen de81c0465d * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addr
field to host byte order before comparing with INADDR_LOOPBACK.
2001-05-15 08:42:15 +00:00
Corinna Vinschen a2cdb048f6 * autoload.cc: Add autoload statements for ws2_32 functions
`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'.
2001-05-15 08:15:54 +00:00
Christopher Faylor f162ad82fc * Makefile.common: Change method for finding current directory. 2001-05-15 05:11:55 +00:00
Christopher Faylor 7ede23a128 * errno.cc (_sys_errlist): Add missing commas. 2001-05-14 19:39:57 +00:00
Corinna Vinschen 5aac6665c7 * security.cc (subauth): Check if Secur32.dll could be loaded. 2001-05-14 14:14:19 +00:00
Christopher Faylor df7320e1ba * path.cc (path_conv::check): Revert allow_ntsec check so that volume info is
always retrieved and isdisk setting is properly set.
2001-05-14 02:52:12 +00:00
Christopher Faylor fb1a9f35e1 Fix formatting. 2001-05-14 02:49:56 +00:00
Christopher Faylor 49a8c92ca3 * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when duping a
filehandle.
2001-05-13 18:05:52 +00:00
Corinna Vinschen cbedbdd029 * dir.cc (rmdir): Rearrange slightly to allow removing directories
even when R/O attribute is set.
2001-05-12 16:24:05 +00:00
Christopher Faylor c3a245f5bf * external.cc (fillout_pinfo): Use correct pids.
* path.cc (mount_info::conv_to_win32_path): Correct test for whether to include
a slash.
2001-05-11 21:01:44 +00:00
Christopher Faylor 5bba0cb5a3 * exceptions.cc (handle_exceptions): Don't print message when executing from a
cygwin program.
2001-05-11 05:11:12 +00:00
Christopher Faylor 723190cf71 Christopher Faylor <cgf@redhat.com>
* environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to win32-style
environment if they don't already exist.
2001-05-11 03:27:22 +00:00
Christopher Faylor ddf72c8f76 remove erroneous header. 2001-05-09 20:22:35 +00:00
Christopher Faylor cedb00be89 * path.cc (mount_info::conv_to_win32_path): Treat UNC paths the same as paths
including `:' or `\'.
2001-05-09 18:59:10 +00:00
Christopher Faylor cd94b71c1b * fhandler.h (fhandler_termios::echo_erase): Declare new method.
* fhandler_termios.cc (fhandler_termios::echo_erase): New method for echoing
erase characters.
(fhandler_termios::line_edit): Check the echo flag before echoing control
characters (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).
2001-05-09 18:53:55 +00:00
Christopher Faylor 00b59ce9c9 * include/pthread.h: Remove C++ comment. 2001-05-09 14:45:47 +00:00
Christopher Faylor 792011508a * cygheap.cc (_cfree): Add regparm attribute.
(_crealloc): Ditto.
* dcrt0.cc (dll_crt0_1): Default to always checking for executable for now.
* dtable.cc (dtable::not_open): Move method.
* dtable.h (dtable): Here.
* exceptions.cc (ctrl_c_handler): Don't expect process group leader to handle a
signal if it doesn't exist.
* fhandler.h (fhandler_base): Make openflags protected.
* localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__.
* path.cc (path_conv::check): Add some comments.  Change strcat to assignment.
* lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate.
* fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if
necessary.
* fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
2001-05-08 15:16:49 +00:00