Commit Graph

7354 Commits

Author SHA1 Message Date
a1cb13411d * security.cc (alloc_sd): Fix comment style. Remove code unused for
years.
2015-02-25 11:40:34 +00:00
6db8557026 * security.cc (alloc_sd): Add temporary workaround which disallows
any secondary user to have more permissions than the primary group
	in calls to chmod.  Add comment to explain why.
2015-02-25 11:38:48 +00:00
bc3116147b * uinfo.cc (client_request_pwdgrp::client_request_pwdgrp): Add missing
break in switch statement.
2015-02-25 08:44:54 +00:00
ad8d295e7c * ldap.h: Remove index macros.
(class cyg_ldap): Remove members srch_msg and srch_entry.
	(cyg_ldap::get_string_attribute): Remove private method taking index
	argument.
	(cyg_ldap::get_num_attribute): Ditto.  Add method taking attribute name.
	(cyg_ldap::get_primary_gid): Adjust to aforementioned change.
	(cyg_ldap::get_unix_uid): Ditto.
	(cyg_ldap::get_unix_gid): Ditto.
	* ldap.cc: Throughout, use msg and entry in place of srch_msg and
	srch_entry.
	(std_user_attr): Add sAMAccountName and objectSid.
	(group_attr): Ditto.
	(cyg_ldap::close): Drop handling of srch_msg and srch_entry.
	(cyg_ldap::get_string_attribute): Move earlier in file.
	(cyg_ldap::get_num_attribute): Ditto.
	(cyg_ldap::enumerate_ad_accounts): Add comments for clarity.
	Use group_attr or user_attr rather than sid_attr to fetch all desired
	attributes for an account right away.
	(cyg_ldap::next_account): Store found SID in last_fetched_sid to
	skip calls to fetch_ad_account from fetch_account_from_windows.
	(cyg_ldap::get_string_attribute): Remove method taking index argument.
	(cyg_ldap::get_num_attribute): Ditto.
	* pwdgrp.h (class pg_ent): Fix formatting.  Add member dom.
	* passwd.cc (pg_ent::enumerate_ad): Store current flat domain name
	in dom.  Construct fetch_acc_t argument from LDAP attributes and
	call fetch_account_from_windows with that.
	* userinfo.h (enum fetch_user_arg_type_t): Rename FULL_grp_arg to
	FULL_acc_arg.  Change throughout.
	(struct fetch_acc_t): Rename from fetch_full_grp_t.  Change throughout.
	(struct fetch_user_arg_t): Rename full_grp to full_acc.  Change
	throughout.
2015-02-24 20:52:57 +00:00
59076540bc * fhandler.h (class fhandler_base): Add was_nonblocking status flag.
* fhandler.cc (fhandler_base::set_flags): Set was_nonblocking if the
	O_NONBLOCK flag has been specified.
	(fhandler_base_overlapped::close): Check for was_nonblocking instead
	of for is_nonblocking.  Explain why.
	(fhandler_base::set_nonblocking): Set was_nonblocking if noblocking
	mode gets enabled.
2015-02-24 11:05:02 +00:00
f8a6c96306 * include/sys/socket.h (sockatmark): Add prototype. 2015-02-24 09:00:37 +00:00
d9792ab0bf * userinfo.h (struct fetch_full_grp_t): Define only when building
Cygwin itself.
	(struct fetch_user_arg_t): Ditto.
2015-02-23 21:01:55 +00:00
bef55bb5c3 * autoload.cc (LsaLookupSids): Import.
* cygserver_pwdgrp.h: Include userinfo.h.  Drop workaround defining
	fetch_user_arg_type_t locally.
	* grp.cc (internal_getgrsid_cachedonly): New function.
	(internal_getgrfull): Ditto.
	(internal_getgroups): Rearrange function.  Center around fetching all
	cached group info first, calling LsaLookupSids on all so far non-cached
	groups second.  Pass all available info to new internal_getgrfull call.
	* pwdgrp.h: Include userinfo.h.  Move definitions of
	fetch_user_arg_type_t and fetch_user_arg_t there.
	(pwdgrp::add_group_from_windows): Declare with getting full group info.
	Called from internal_getgrfull.
	* uinfo.cc (pwdgrp::add_group_from_windows): Define.
	(pwdgrp::fetch_account_from_line): Add default case.
	(pwdgrp::fetch_account_from_file): Ditto.
	(pwdgrp::fetch_account_from_windows): Handle FULL_grp_arg.
	(client_request_pwdgrp::client_request_pwdgrp): Add default case.
	* userinfo.h: New header.
	(enum fetch_user_arg_type_t): Add FULL_grp_arg.
	(struct fetch_full_grp_t): New datatype.
2015-02-23 20:51:12 +00:00
9b54770bd7 * grp.cc (internal_getgroups): Check for group attributes and
Everyone sid before calling internal_getgrsid.
2015-02-23 15:46:10 +00:00
093fe9b598 * cygwait.h (enum cw_wait_mask): Add cw_sig_restart. Add comments
to explain the meaning of the possible values.
	* cygwait.cc (is_cw_sig_restart): Define.
	(is_cw_sig_handle): Check for cw_sig_restart as well.
	(cygwait): Restart always if cw_sig_restart is set.
	* thread.cc (pthread::join): Call cygwait with cw_sig_restart flag
	to avoid having to handle signals at all.
2015-02-23 13:56:01 +00:00
b6e4adaaf1 * cygwait.cc (cygwait): Move setting res to WAIT_SIGNALED to clarify
when WAIT_SIGNALED is returned to the caller.
2015-02-23 13:32:16 +00:00
f6ec73c018 * winsup.h (SIGTOMASK): Add cast to sigset_t to avoid int overflow. 2015-02-23 12:40:01 +00:00
d6f62a1178 * grp.cc (internal_getgroups): Take additional timeout_ns parameter.
Restrict fetching group account entries from user token groups by
	timeout_ns 100ns-intervals.  Add preceding comment to explain why.
	* pwdgrp.h (internal_getgroups): Align prototype.
	* times.cc (GetTickCount_ns): New function.
	* uinfo.cc (internal_getlogin): Call internal_getgroups wih 300ms
	timeout.
	* winsup.h (GetTickCount_ns): Declare.
2015-02-20 15:13:46 +00:00
89a3749928 2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk>
* Makefile.in (sigfe.o): Use CFLAGS.
2015-02-20 12:15:38 +00:00
09766bc8a0 2015-02-19 Jon TURNEY <jon.turney@dronecode.org.uk>
* include/cygwin/stdlib.h (initstate, random, setstate, srandom):
	Check if __XSI_VISIBLE is set by sys/cdefs.h, rather than testing
	for _XOPEN_SOURCE directly, to work correctly when _GNU_SOURCE is
	set.
2015-02-20 12:13:59 +00:00
c53c879db4 * sec_acl.cc (setacl): Always grant owner FILE_WRITE_ATTRIBUTES access. 2015-02-19 14:15:44 +00:00
c3470988cf * ldap.cc (struct cyg_ldap_search): Add scope member.
(cyg_ldap::search_s): Add parameter scope.  Use as LDAP search scope
	instead of fixed LDAP_SCOPE_SUBTREE scope.
	(ldap_search_thr): Call cyg_ldap::search_s with scope from argument.
	(cyg_ldap::search): Add parameter scope and fill in to cyg_ldap_search.
	(cyg_ldap::fetch_ad_account): Call search with LDAP_SCOPE_SUBTREE scope.
	(cyg_ldap::fetch_posix_offset_for_domain): Call search with
	LDAP_SCOPE_ONELEVEL scope.
	(cyg_ldap::fetch_unix_sid_from_ad): Call search with LDAP_SCOPE_SUBTREE
	scope.
	(cyg_ldap::fetch_unix_name_from_rfc2307): Ditto.
	* ldap.h (cyg_ldap::search): Align prototype to above change.
	(cyg_ldap::search_s): Ditto.
2015-02-18 10:25:14 +00:00
8e25eb2c85 * ldap.cc: Macro-ize filter expressions. Use throughout to compute
required filter buffer size if filter is a local buffer.
2015-02-18 10:04:14 +00:00
b50e45ff15 * ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): Drop stray
system_printf.
2015-02-17 21:17:49 +00:00
c6d22dd3b0 * ldap.h (class cyg_ldap): Rename rootdse to def_context. Change
throughout.
	* ldap.cc (cyg_ldap::open): Fix debug output.
	(cyg_ldap::fetch_ad_account): Rename rdse to base.  Restrict LDAP
	query to users and groups only.
	(cyg_ldap::enumerate_ad_accounts): Rearrange filter expression for
	user accounts.
	(SYSTEM_CONTAINER): New macro.
	(cyg_ldap::fetch_posix_offset_for_domain): Set base in LDAP search
	to the "System" container in the default naming context to restrict
	the search scope.
	(cyg_ldap::fetch_unix_sid_from_ad): Add objectCategory=Person to
	search filter for users.
2015-02-17 21:08:01 +00:00
b5d4a40465 *** empty log message *** 2015-02-16 12:50:12 +00:00
46ada24209 * spawn.cc (find_exec): Extend preceeding comment to explain more
detailed what's going on in this function.  Overwrite potential symlink
	target with original path.
2015-02-16 11:49:33 +00:00
75fb392aa3 * i686.din (__mempcpy): Move symbol export from here...
* common.din (__mempcpy): ... to here.
2015-02-15 09:13:03 +00:00
d0695371df Fix layout of ChangeLog entry 2015-02-15 09:00:19 +00:00
d2bd82aa92 * path.h (path_conv): Make path_flags private. Rename known_suffix to
suffix and make private.  Rename normalized_path to posix_path and
	make privtae.  Accommodate name changes throughout in path_conv
	methods.
	(path_conv::known_suffix): New method.  Use throughout instead of
	accessing suffix directly.
	(path_conv::get_win32): Constify.
	(path_conv::get_posix): New method to read posix_path.  Use throughout
	instead of accessing normalized_path directly.
	(path_conv::set_posix): Rename from set_normalized_path.  Accommodate
	name change throughout.
	* spawn.cc (find_exec): Return POSIX path, not Win32 path.
2015-02-15 08:59:55 +00:00
6b14f3988c *** empty log message *** 2015-02-12 20:23:20 +00:00
1072cb2e7d * sec_acl.cc (setacl): Introduce bool array "invalid" to note the
invalidation of incoming acl entries while iterating over them.
2015-02-12 17:53:24 +00:00
b49934db7f * cygheap.h (cygheap_pwdgrp::get_home): Add dnsdomain parameter to
declaration in ldap-related method.
	(cygheap_pwdgrp::get_shell): Ditto.
	(cygheap_pwdgrp::get_gecos): Ditto.
	* ldap.cc (cyg_ldap::open): Use NO_ERROR instead of 0.
	(cyg_ldap::close): Reset last_fetched_sid.
	(cyg_ldap::fetch_ad_account): Return immediately if sid is the same as
	last_fetched_sid.  Open LDAP connection from here.  Move initialization
	of rdse after open call.  Set last_fetched_sid if LDAP call was
	successful.
	* ldap.h (class cyg_ldap): Add member last_fetched_sid.
	(cyg_ldap::cyg_ldap): Initialize last_fetched_sid.
	(cyg_ldap::is_open): New inline method.
	* uinfo.cc (cygheap_pwdgrp::init): Drop initialization of db_home,
	db_shell and db_gecos with "cygwin desc", thus only using the fallback
	by default.
	(fetch_windows_home): Add parameter dnsdomain.  Call
	cyg_ldap::fetch_ad_account if required.
	(fetch_from_path): Add parameter dnsdomain.  Call fetch_windows_home
	accordingly.
	(cygheap_pwdgrp::get_home): Accomodate call to fetch_windows_home.
	Add dnsdomain parameter in ldap-related method.  Call
	cyg_ldap::fetch_ad_account if required.
	(cygheap_pwdgrp::get_shell): Ditto.
	(cygheap_pwdgrp::get_gecos): Ditto.
	(pwdgrp::fetch_account_from_windows): Drop cyg_ldap::open call prior to
	cyg_ldap::fetch_ad_account call.  Set is_current_user to true if we're
	handling the current user account.  Make sure to perform the LDAP calls
	only for users, and only if required.
2015-02-12 16:55:38 +00:00
85a53bd54b * flock.cc (fhandler_base::lock): Convert accidental system_printf to
debug_printf in case of non-matching file modes.  Clear up debug output.
2015-02-11 21:45:47 +00:00
117b1b1edb * dlfcn.cc (check_path_access): Drop FE_NATIVE from find_exec call.
(gfpod_helper): Drop equality sign from environment variable name
	in call to check_path_access.
	* exec.cc (execlp): Drop equality sign from environment variable name
	in call to find_exec.
	(execvp): Ditto.
	(execvpe): Ditto.
	* path.h (enum fe_types): Drop FE_NATIVE.
	(find_exec): Rename third paramter in declaration from search.  Drop
	equality sign from default value.
	* spawn.cc (perhaps_suffix): Add PC_POSIX to path_conv::check call.
	(find_exec): Simplify function.  Iterate over POSIX pathlist rather
	than Windows pathlist.  Drop handling of FE_NATIVE flag.  Always fill
	posix path of incoming path_conv buf, unless FE_NNF flag is given.
	(av::setup): Drop equality sign from environment variable name
	in call to find_exec.  Call unshift with normalized_path.
	* winf.cc (av::unshift): Drop conv parameter and code converting
	Windows to POSIX path.
	* winf.h (av::unshift): Accommodate prototype.
2015-02-11 13:15:59 +00:00
d260e92859 * syscalls.cc (fhandler_base::stat_fixup): Generate unique inode number
for /dev/tty under all circumstances.  Add to comment.
2015-02-10 20:41:16 +00:00
22d65acb9c *** empty log message *** 2015-02-06 17:14:26 +00:00
f1b0fac03c * common.din: Export cabsl, cimagl, creall, finitel, hypotl, sqrtl.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2015-02-06 17:09:50 +00:00
b6c60d78c5 * include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 35. 2015-02-06 17:08:10 +00:00
db004c5d7a * fhandler_proc.cc (format_proc_cpuinfo): Enable multi-core fields
on Intel CPUs.
2015-02-06 11:41:56 +00:00
d550f1876f * common.din (wcstold): Export.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2015-02-04 11:03:36 +00:00
38602c8697 *** empty log message *** 2015-02-03 15:21:58 +00:00
0f5a7b350f * mkvers.sh: Automate generating the copyright date in the version
resource.
	* winver.rc: Ditto.
2015-02-03 13:15:49 +00:00
6340d0ff91 * Makefile.in (VERSION_OFILES): New variable containing object files
with version information.  Use throughout.
	(clean): Drop winver_stamp.
	(version.cc winver.o): Drop empty rule.
	(winver_stamp): Convert to rule targeting version.cc and winver.o
	directly.  Drop touching winver_stamp.  Fix typo.
2015-01-28 11:43:06 +00:00
f65694fbfa *** empty log message *** 2015-01-27 14:59:36 +00:00
e352829f71 Fix entry header 2015-01-24 20:05:08 +00:00
73b4c40205 * uname.cc (uname): Shorten "WOW64" to "WOW" to account for the new
Windows 10 OS version "10.0" starting with preview build 9926.
2015-01-24 19:56:42 +00:00
a7b066ffe3 *** empty log message *** 2015-01-23 14:57:19 +00:00
64f8b4caa3 * net.cc (cygwin_inet_pton): Declare.
(gethostby_specials): New function.
	(gethostby_helper): Change returned addrtype in 4-to-6 case.
	(gethostbyname2): Call gethostby_specials.
2015-01-23 10:46:22 +00:00
185784962a * fhandler.h (class fhandler_process): Add fd_type member.
* fhandler_process.cc (process_tab): Fix indentation.
	(fhandler_process::exists): Rely on format_process_fd returning file
	type in fd_type.
	(struct process_fd_t): Add fd_type member.
	(fhandler_process::fill_filebuf): Allow format_process_fd to set
	this->fd_type member.
	(format_process_fd): Fix path evaluation to allow recognizing trailing
	path components.  Fix check for file descriptor path component.  Return
	virt_symlink in fd_type if no trailing path compenents exist, return
	virt_fsdir otherwise and copy full resulting path into destbuf.
	* path.cc (path_conv::check): If /proc/$PID/fd symlink has trailing
	path components, reparse resulting path as if it's the incoming path.
	Add comment to wail over the outdated and hackish check method, and to
	explain what we do here.
2015-01-22 13:46:12 +00:00
638dd243f2 * uinfo.cc (pwdgrp::fetch_account_from_windows): Allow fetching gid,
home, shell and gecos info from NT4 domain.
2015-01-21 20:40:33 +00:00
f485f16276 * sec_auth.cc (get_logon_server): Constify domain parameter.
* security.h (get_logon_server): Same in prototype.
2015-01-21 16:31:38 +00:00
d2264bce02 * common.din (sockatmark): Export.
* net.cc (sockatmark): New function.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2015-01-20 18:23:20 +00:00
88171c62d3 *** empty log message *** 2015-01-20 10:03:02 +00:00
c95ce02160 * cygserver_ipc.h (ipc_retval): Add default constructor.
(class thread): struct->class.  Add prototypes for new private methods
	dup_signal_arrived and close_signal_arrived.  Implement constructor and
	destructor.
2015-01-19 17:42:04 +00:00