1261 lines
50 KiB
Plaintext
1261 lines
50 KiB
Plaintext
2014-05-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* signal.cc (sigprocmask): Fix strace output to include "how".
|
|
|
|
* fhandler_console.cc (dev_console::save_restore): Only save current
|
|
dwEnd line rather than the one after that.
|
|
|
|
2014-05-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (cygheap_user::init): Fix formatting in debug output.
|
|
(struct cyg_USER_INFO_24): Define temporarily. Explain why.
|
|
(pwdgrp::fetch_account_from_windows): Handle sane primary group
|
|
setting for Microsoft Accounts. Explain why.
|
|
* wincap.h (wincaps::has_microsoft_accounts): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
|
|
2014-05-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (gr_ent::enumerate_caches): Fix copy/paste bug introducing
|
|
an endless loop.
|
|
|
|
2014-05-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* passwd.cc (pwdgrp::parse_passwd): Fix an off by one computing the
|
|
buffer len. Add comment.
|
|
* uinfo.cc (internal_getlogin): Fix typo in comment.
|
|
|
|
2014-05-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Tweak SID<->uid
|
|
conversion to cover S-1-5-113, S-1-5-114, and S-1-5-1000 groups.
|
|
|
|
2014-05-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (pwdgrp::parse_group): Set grp.len. Drop generating any
|
|
gr_mem entries.
|
|
(getgrgid_r): Don't try to copy gr_mem entries. Always set gr_mem
|
|
to an empty list.
|
|
(getgrnam_r): Ditto.
|
|
(app_gr): New static struct to store group data propagated to the
|
|
calling application via getgrgid/getgrnam.
|
|
(getgr_cp): Fill app_gr and return pointer to app_gr.g.
|
|
(getgrgid32): Call getgr_cp.
|
|
(getgrnam32): Ditto.
|
|
* passwd.cc (pwdgrp::parse_passwd): Set res.len.
|
|
(app_pw): New static struct to store passwd data propagated to the
|
|
calling application via getpwuid/getpwnam.
|
|
(getpw_cp): Fill app_pw and return pointer to app_pw.p.
|
|
(getpwuid32): Cal getpw_cp.
|
|
(getpwnam): Ditto.
|
|
* pwdgrp.h (struct pg_pwd): Add len member.
|
|
(struct pg_grp): Ditto.
|
|
|
|
2014-05-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* security.h (MAX_SUBAUTH_CNT): Drop. Use SID_MAX_SUB_AUTHORITIES
|
|
instead throughout.
|
|
(MAX_SID_LEN): Drop. Use SECURITY_MAX_SID_SIZE instead throughout.
|
|
|
|
2014-05-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (internal_getgroups): Drop unused cygsid variable.
|
|
* sec_helper.cc (cygpsid::pstring): Use sid_sub_auth_count macro.
|
|
(cygsid::get_sid): Use MAX_SUBAUTH_CNT rather than wrong constant 8.
|
|
Don't call memcpy to copy subauthorities into SID, use assignment.
|
|
(cygsid::getfromstr): Use MAX_SUBAUTH_CNT rather than wrong constant 8.
|
|
* security.h (MAX_SUBAUTH_CNT): New definition. Set to 11 to cover
|
|
Microsoft Accounts.
|
|
(MAX_SID_LEN): Define in terms of SID member sizes and MAX_SUBAUTH_CNT.
|
|
(DBGSID): Use MAX_SUBAUTH_CNT to define size of SubAuthority array.
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Handle Micosoft
|
|
Accounts. Handle them as well known group. Compare domain names
|
|
case-insensitive.
|
|
* winlean.h (PIPE_REJECT_REMOTE_CLIENTS): Drop temporary definition
|
|
since Mingw64 catched up.
|
|
(DNLEN): Redefine as 16. Explain why.
|
|
|
|
2014-05-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* net.cc (cygwin_getsockopt): Rearrange code slightly and handle
|
|
TCP_NODELAY just like SO_KEEPALIVE and SO_DONTROUTE.
|
|
|
|
2014-05-03 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* spawn.cc (av::setup): Eat trailing whitespace on #! script.
|
|
|
|
2014-05-02 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler_dsp.cc (ioctl): Use _ioctl for recursive call.
|
|
|
|
2014-04-26 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* DevNotes: Add entry cgf-000026.
|
|
* fhandler.h (fhandler_console::save_top): Save top of screen
|
|
coordinates.
|
|
* fhandler_console.cc (dev::save_restore): Record top of screen
|
|
coordinates. Clear entire buffer when restoring saved buffer and try
|
|
to position the cursor on the save relative place on the screen.
|
|
|
|
2014-04-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (NT_TRANSACTIONAL_ERROR): Cover all status codes up to
|
|
STATUS_TRANSACTION_NOT_ENLISTED.
|
|
|
|
2014-04-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_socket.cc: On x86_64, define u_long as __ms_u_long before
|
|
including the windows headers. Explain why.
|
|
(get_inet_addr): Convert ANY address to LOOPBACK address. Explain why.
|
|
(fhandler_socket::evaluate_events): Forcibly set SO_ERROR socket option
|
|
in case a connection attempt failed. Explain why.
|
|
(fhandler_socket::ioctl): Drop x86_64 re-definition of u_long here.
|
|
* fhandler_procnet.cc: On x86_64, define u_long as __ms_u_long before
|
|
including the windows headers. Explain why.
|
|
* net.cc: Ditto.
|
|
|
|
2014-04-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* miscfuncs.cc (check_iovec): Allow 0 as valid iovcnt value.
|
|
|
|
2014-04-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ldap.cc (user_attr): Remove "uid" attribute.
|
|
* ldap.h (LDAP_USER_NAME_ATTR): Remove. Change other attribute index
|
|
values as required.
|
|
(cyg_ldap::get_user_name): Remove inline function.
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Remove code to handle
|
|
Cygwin username different from Windows username.
|
|
(pwdgrp::add_account_from_cygserver): Remove unnecessary cast.
|
|
|
|
2014-04-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* winf.cc (linebuf::fromargv): Temporarily revert patch from 2014-01-24.
|
|
|
|
2014-04-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygtls.h (TP_NUM_C_BUFS): Raise to 50 to allow SYMLOOP_MAX recursions
|
|
path_conv <-> normalize_posix_path, plus a bit of buffer.
|
|
(TP_NUM_W_BUFS): Ditto.
|
|
(class san): Change type of _c_cnt and _w_cnt to unsigned.
|
|
* path.cc (normalize_posix_path): Guard recursion into path_conv
|
|
against tmp_pathbuf overflow. Generate normalized path in call to
|
|
path_conv. If the path is valid, replace dst with the normalized_path
|
|
from path_conv call. Add comment to explain why we're doing this.
|
|
* tls_pbuf.cc (tls_pathbuf::destroy): Only free buffers until the
|
|
first buffer pointer is NULL.
|
|
(tmp_pathbuf::c_get): Simplify error message.
|
|
(tmp_pathbuf::w_get): Ditto.
|
|
* tls_pbuf.h (class tmp_pathbuf): Change type of c_buf_old and w_buf_old
|
|
to unsigned.
|
|
(tmp_pathbuf::check_usage): New inline method to check if we have
|
|
enough tmp_pathbuf buffers left to call a function using tmp_pathbuf
|
|
buffers.
|
|
* tlsoffsets.h: Regenerate.
|
|
* tlsoffsets64.h: Regenerate.
|
|
|
|
2014-04-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* net.cc (cygwin_setsockopt): Ignore IPV6_TCLASS the same way as IP_TOS.
|
|
|
|
2014-04-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Fix gid evaluation
|
|
for local accounts.
|
|
|
|
2014-04-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 30.
|
|
|
|
2014-04-09 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (exception::myfault_handle): Only handle the minimum
|
|
amount of exceptions the myfault handler was designed for.
|
|
|
|
2014-04-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.sc.in: (Temporarily?) workaround serious ld bug which
|
|
truncates symbols in certain computations to 32 bit. See
|
|
https://sourceware.org/bugzilla/show_bug.cgi?id=16821
|
|
|
|
2014-04-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygserver_ipc.h (ipc_set_proc_info): Add bool parameter to specify
|
|
whether or not to send signal_arrived.
|
|
* shm.cc (client_request_shm::client_request_shm): Call
|
|
ipc_set_proc_info with bool parameter set to true to not send
|
|
signal_arrived.
|
|
|
|
2014-04-04 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ntea.cc (EA_BUFSIZ): Fix comment.
|
|
(read_ea): Use tmp_pathbuf for local buffer rather than alloca.
|
|
Throughout change ZwQueryEaFile to NtQueryEaFile in comments.
|
|
|
|
2014-04-04 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ntea.cc (EA_BUFSIZ): Reduce to 64K. Add comment to explain why.
|
|
|
|
2014-03-29 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* DevNotes: Add entry cgf-000025.
|
|
* exceptions.cc (_cygtls::signal_debugger): Reorganize to avoid
|
|
contacting the debugger if we have already done so via the exception
|
|
handler. Eliminate need for goto. Remove an ifdef in favor of just
|
|
allocating a larger buffer.
|
|
|
|
2014-03-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (dll_crt0_0): Install myfault exception handler on x86_64.
|
|
* exception.h (exception_list): Typedef as void on x86_64.
|
|
(exception::handler_installed): Remove.
|
|
(exception::handle_while_being_debugged): Remove.
|
|
(exception::myfault_handle): Declare for x86_64.
|
|
(exception::handle): Declare as ordinary exception handler on x86_64
|
|
as well.
|
|
(exception::exception): Drop previous code (again). Install
|
|
exception::handle as SEH handler.
|
|
(exception::install_myfault_handler): New x86_64-only method to
|
|
install exception::myfault_handle as VEH handler. Explain why.
|
|
(exception::~exception): For x86_64, define frame end label (again).
|
|
* exceptions.cc (CYG_EXC_CONTINUE_EXECUTION): Drop definition.
|
|
(CYG_EXC_CONTINUE_SEARCH): Ditto.
|
|
(exception::myfault_handle): New x86_64-only method, VEH handler to
|
|
handle myfault exceptions.
|
|
(exception::handle): Define as ordinary exception handler on x86_64
|
|
as well. Use ExceptionContinueExecution and ExceptionContinueSearch
|
|
throughout instead of deleted Cygwin macros. Don't handle myfault
|
|
exceptions on x86_64.
|
|
|
|
2014-03-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* sec_auth.cc (create_token): Initialize lsa handle to NULL, rather than
|
|
to INVALID_HANDLE_VALUE.
|
|
(lsaauth): Ditto.
|
|
(lsaprivkeyauth): Ditto.
|
|
* setlsapwd.cc (setlsapwd): Don't initialize lsa handle.
|
|
|
|
2014-03-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (_cygtls::signal_debugger): Move memcpy to copy context
|
|
from incoming siginfo_t to thread_context, too.
|
|
|
|
2014-03-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* gendef (_sigbe/x86_64): Fix typo in .seh_proc pseudo-op.
|
|
(setjmp/x86_64): Drop storing ExceptionList pointer in jmp_buf->Frame.
|
|
Drop comment. Store likely frame in rdx. Jump to __setjmpex.
|
|
(__setjmpex): New function providing setjmp functionality. Fetch
|
|
jmp_buf->Frame from rdx, like MSVCRT setjmpex.
|
|
(__sjfault/x86_64): Store rdx content in jmp_buf->Frame.
|
|
(__ljfault/x86_64): Don't restore ExceptionList pointer.
|
|
(longjmp/x86_64): Ditto.
|
|
|
|
2014-03-19 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Actually pass ioctl
|
|
argument to _ioctl.
|
|
|
|
2014-03-19 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (fhandler_dev_dsp): Remove variable names from
|
|
declarations.
|
|
(fhandler_dev_dsp::close_audio_in): Make __reg1.
|
|
(fhandler_dev_dsp::close_audio_out): Make __reg2.
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::close_audio_in): Make __reg1.
|
|
(fhandler_dev_dsp::close_audio_out): Make __reg2.
|
|
(fhandler_dev_dsp::close): Don't abruptly terminate sound just because
|
|
we are exiting.
|
|
|
|
2014-03-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exception.h (exception::handle_while_being_debugged): Declare.
|
|
(exception::exception): Install unhandled exception filter.
|
|
* exceptions.cc (exception::handle_while_being_debugged): New method.
|
|
|
|
2014-03-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* passwd.cc (pg_ent::enumerate_ad): Ignore primary domain in list of
|
|
trusted domains only if all trusted domains are enumerated anyway.
|
|
Explain why.
|
|
|
|
2014-03-18 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::fixup_after_fork): Actually call
|
|
_fixup_after_fork rather than looping forever.
|
|
(fhandler_dev_dsp::fixup_after_exec): Ditto.
|
|
|
|
2014-03-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
Partially revert patch from 2014-03-04.
|
|
* exception.h (exception::handler_installed): Declare.
|
|
(exception::exception): Install vectored exception handler on x86_64.
|
|
(exception::~exception): Remove for x86_64.
|
|
* exceptions.cc (exception::handler_installed): Define.
|
|
|
|
2014-03-17 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* sigproc.h (no_thread_exit_protect): New class.
|
|
* sigproc.cc (thread_exit): Use no_thread_exit_protect to determine if
|
|
we need to coordinate ThreadExit/ExitProcess.
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Use
|
|
no_thread_exit_protect to kludge around waiting for waveOutClose as it
|
|
waits for a thread that never exits.
|
|
(fhandler_dev_dsp::Audio_in::stop): Ditto for waveInClose.
|
|
|
|
2014-03-16 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (fhandler_dev_dsp::base): New method.
|
|
(fhandler_dev_dsp::_read): Ditto.
|
|
(fhandler_dev_dsp::_write): Ditto.
|
|
(fhandler_dev_dsp::_ioctl): Ditto.
|
|
(fhandler_dev_dsp::_fixup_after_fork): Ditto.
|
|
(fhandler_dev_dsp::_fixup_after_exec): Ditto.
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::read): Call real function via
|
|
base() pointer.
|
|
(fhandler_dev_dsp::write): Ditto.
|
|
(fhandler_dev_dsp::ioctl): Ditto.
|
|
(fhandler_dev_dsp::fixup_after_fork): Ditto.
|
|
(fhandler_dev_dsp::fixup_after_exec): Ditto.
|
|
(fhandler_dev_dsp::_read): Rename by adding an leading underscore.
|
|
(fhandler_dev_dsp::_write): Ditto.
|
|
(fhandler_dev_dsp::_ioctl): Ditto.
|
|
(fhandler_dev_dsp::_fixup_after_fork): Ditto.
|
|
(fhandler_dev_dsp::_fixup_after_exec): Ditto.
|
|
|
|
2014-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygheap.h (enum cygheap_pwdgrp::cache_t): Remove.
|
|
(cygheap_pwdgrp::caching): Convert to bool.
|
|
(cygheap_pwdgrp::pwd_cache): Add cygserver member.
|
|
(cygheap_pwdgrp::grp_cache): Ditto.
|
|
(cygheap_pwdgrp::nss_db_caching): Drop.
|
|
(cygheap_pwdgrp::nss_db_full_caching): Drop.
|
|
(cygheap_pwdgrp::nss_cygserver_caching): New method.
|
|
(cygheap_pwdgrp::nss_disable_cygserver_caching): New method.
|
|
* cygserver.h (client_request::request_code_t): Add
|
|
CYGSERVER_REQUEST_PWDGRP.
|
|
* cygserver_pwdgrp.h: New file.
|
|
* cygtls.h (struct _local_storage): Remove pwbuf and grbuf members.
|
|
* grp.cc (pwdgrp::prep_tls_grbuf): Drop.
|
|
(internal_getgrsid): Handle cygserver caching and rearrange to check
|
|
the caches first.
|
|
(internal_getgrnam): Ditto.
|
|
(internal_getgrgid): Ditto.
|
|
(gr_ent::enumerate_caches): Handle cygserver cache.
|
|
* passwd.cc (pwdgrp::prep_tls_pwbuf): Drop.
|
|
(internal_getpwsid): Handle cygserver caching and rearrange to check
|
|
the caches first.
|
|
(internal_getpwnam): Ditto.
|
|
(internal_getpwuid): Ditto.
|
|
(pw_ent::enumerate_caches): Handle cygserver cache.
|
|
* pwdgrp.h (pwdgrp::add_account_from_cygserver): New method declaration.
|
|
(pwdgrp::fetch_account_from_cygserver): New method declaration.
|
|
(pwdgrp::prep_tls_pwbuf): Drop declaration.
|
|
(pwdgrp::prep_tls_grbuf): Drop declaration.
|
|
(pwdgrp::add_user_from_cygserver): New inline methods.
|
|
(pwdgrp::add_group_from_cygserver): New inline methods.
|
|
* tlsoffsets.h: Regenerate.
|
|
* tlsoffsets64.h: Regenerate.
|
|
* uinfo.cc (internal_getlogin): Call internal_getgroups if cygserver
|
|
caching is not available.
|
|
(cygheap_pwdgrp::init): Initialize pwd_cache.cygserver and
|
|
grp_cache.cygserver. Set caching to true.
|
|
(cygheap_pwdgrp::nss_init_line): Drop db_cache handling entirely.
|
|
(pwdgrp::add_account_from_windows): Drop no caching handling.
|
|
(client_request_pwdgrp::client_request_pwdgrp): New method.
|
|
(pwdgrp::fetch_account_from_cygserver): New method.
|
|
(pwdgrp::add_account_from_cygserver): New method.
|
|
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix formatting.
|
|
* include/sys/cygwin.h: Ditto.
|
|
|
|
2014-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Avoid crash on
|
|
non-domain member machines if an unknown SID comes in.
|
|
|
|
2014-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/socket.h (IPV6_JOIN_GROUP): Revert.
|
|
(IPV6_LEAVE_GROUP): Ditto.
|
|
|
|
2014-03-10 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (dev_console::b): Redefine as CONSOLE_SCREEN_BUFFER_INFO
|
|
for use with older OS.
|
|
* fhandler_console.cc (dev_console::fillin): Ditto for
|
|
GetConsoleScreenBufferInfo.
|
|
|
|
2014-03-10 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler_console.cc (dev_console::save_restore): Save entire line of
|
|
current cursor position.
|
|
|
|
2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler_console.cc (fhandler_console::save_restore): Save only until
|
|
last written row and, because of this, don't bother trying to restore
|
|
the screen buffer size. Set cursor position after refilling buffer.
|
|
(fhandler_console::write): Use absolute paths when saving/restoring
|
|
cursor position or suffer odd problems after a saved screen is
|
|
restored.
|
|
|
|
2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (fhandler_console::dwBufferSize): Delete.
|
|
(fhandler_console::dwCursorPosition): Ditto.
|
|
(fhandler_console::wAttributes): Ditto.
|
|
(fhandler_console::b): New field encompassing previously disparate
|
|
screen buffer info.
|
|
(fhandler_console::save_bufsize): Rename from savebufsiz
|
|
(fhandler_console::save_buf): Rename sfrom savebuf.
|
|
(fhandler_console::save_cursor): New field.
|
|
(fhandler_console::save_restore): New function.
|
|
(fhandler_console::con): Rename from dev_state.
|
|
(fhandler_console::focus_aware): Accommodate name change.
|
|
* fhandler_console.cc: Use 'b' field of dev_console throughout instead
|
|
of disparate names. Accommodate dev_state -> con rename.
|
|
(dev_state:save_restore): New function. Attempt to save the entire
|
|
screen buffer rather than just the visible part. Clear the buffer when
|
|
saving, like Linux.
|
|
(fhandler_console::char_command): Use con.save_restore() for
|
|
Save/restore screen sequence.
|
|
|
|
2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* sigproc.cc (_cygtls::remove_wq): Reset thread_ev inside of lock. Set
|
|
to NULL when done.
|
|
|
|
2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler_console.cc (fhandler_console::char_command): Properly use
|
|
calculated value rather than directly using dev_state.args[0].
|
|
|
|
2014-03-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* dir.cc (opendir): Propagate any errno from build_fh_name.
|
|
|
|
2014-03-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* pwdgrp.h (pwdgrp::is_passwd): New inline method.
|
|
(pwdgrp::is_group): New inline method.
|
|
(add_account_from_windows): Drop group argument from declaration.
|
|
(fetch_account_from_windows): Ditto.
|
|
(check_file): Ditto.
|
|
(add_user_from_windows): Call add_account_from_windows accordingly.
|
|
(add_group_from_windows): Ditto.
|
|
* uinfo.cc (pwdgrp::add_account_from_windows): Drop group argument.
|
|
Use is_group method instead.
|
|
(pwdgrp::check_file): Ditto.
|
|
(pwdgrp::fetch_account_from_windows): Ditto.
|
|
* grp.cc: Accommodate aforementioned changes.
|
|
* passwd.cc: Ditto.
|
|
|
|
2014-03-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* passwd.cc (pg_ent::enumerate_builtin): Convert pwd_builtins and
|
|
grp_builtins to array of cygpsid pointers. Replace SID strings with
|
|
pointers to well known SIDs.
|
|
* sec_helper.cc (well_known_local_service_sid): Define.
|
|
(well_known_network_service_sid): Define.
|
|
(trusted_installer_sid): Define.
|
|
* security.h (well_known_local_service_sid): Declare.
|
|
(well_known_network_service_sid): Declare.
|
|
(trusted_installer_sid): Declare.
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Throughout set acc_type
|
|
to SidTypeUnknown if LookupAccountXXX function failed. Create
|
|
simplified passwd entry for non-user accounts, except for LocalSystem.
|
|
Add comment.
|
|
|
|
2014-03-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* setlsapwd.cc (setlsapwd): Use RtlSecureZeroMemory to delete password
|
|
from memory.
|
|
|
|
2014-03-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ldap.cc (rediscover_thread): Remove.
|
|
(cyg_ldap::open): Remove code to rediscover DC. It just won't do the
|
|
right thing.
|
|
(cyg_ldap::enumerate_ad_accounts): Change to be self-sufficient (no
|
|
explicit open call required). Enumerate on a DC of the domain itself
|
|
instead of relying on delegation. Remove ill-advised code trying to
|
|
generate rootdse from domain name.
|
|
* passwd.cc (pg_ent::enumerate_ad): Drop explicit call to
|
|
cyg_ldap::open.
|
|
|
|
2014-03-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/config.h (__TM_GMTOFF): Define.
|
|
(__TM_ZONE): Define.
|
|
|
|
2014-03-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* localtime.cc: Define TM_GMTOFF and TM_ZONE based on __TM_GMTOFF and
|
|
__TM_ZONE being defined. Throughout, write to these struct tm members
|
|
only if CYGWIN_VERSION_CHECK_FOR_EXTRA_TM_MEMBERS is true.
|
|
* libc/strptime.cc: Ditto.
|
|
* include/cygwin/version.h (CYGWIN_VERSION_CHECK_FOR_EXTRA_TM_MEMBERS):
|
|
Define.
|
|
(CYGWIN_VERSION_API_MINOR): Bump to 272.
|
|
|
|
2014-03-04 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exception.h (exception::handler_installed): Remove.
|
|
(exception::exception): Remove old code. Manually install SEH handler
|
|
instead.
|
|
(exception::~exception): For x86_64, define frame end label.
|
|
* exceptions.cc (exception::handler_installed): Remove.
|
|
|
|
2014-03-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exception.h (exception::exception): Install vectored exception
|
|
handler rather than vectored continue handler.
|
|
|
|
2014-03-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* sec_helper.cc (cygpsid::get_id): Move Samba SID->uid/gid mapping
|
|
from get_sids_info here.
|
|
(get_sids_info): Vice versa.
|
|
* security.cc (convert_samba_sd): New static function to map a Samba
|
|
security descriptor to a security descriptor with UNIX users and groups
|
|
converted to Windows SIDs per RFC 2307 mapping.
|
|
(check_file_access): Call convert_samba_sd on Samba security
|
|
descriptors.
|
|
|
|
2014-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Only fetch extended
|
|
user info if we're creating a passwd entry. Add comment.
|
|
|
|
2014-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygheap.h (cygheap_user::sid): Return reference to cygpsid rather
|
|
than PSID.
|
|
(cygheap_user::saved_sid): Ditto.
|
|
(cygheap_pwdgrp::cache_t): New type.
|
|
(cygheap_pwdgrp::caching): Convert to cache_t.
|
|
(cygheap_pwdgrp::nss_db_caching): Change accordingly.
|
|
(cygheap_pwdgrp::nss_db_full_caching): New inline method.
|
|
* grp.cc (internal_getgroups): Reinvent. Take cyg_ldap pointer as
|
|
third parameter and use throughout.
|
|
(getgroups32): Call internal_getgroups.
|
|
* pwdgrp.h (internal_getgroups): Declare.
|
|
* uinfo.cc (internal_getlogin): Partial rewrite to accommodate having
|
|
no connection to the DC. Give primary group from user token more
|
|
weight. Generate group entries for all groups in the user token if
|
|
caching is set to NSS_FULL_CACHING.
|
|
(cygheap_pwdgrp::init): Initialize caching to NSS_FULL_CACHING.
|
|
(cygheap_pwdgrp::nss_init_line): Handle "db_cache: full".
|
|
(pwdgrp::add_account_from_windows): Fix group handling in non-caching
|
|
mode.
|
|
(pwdgrp::fetch_account_from_windows): Default primary group for the
|
|
current user to primary group from user token. Check for primary
|
|
domain first after LookupAccountSid failed.
|
|
|
|
2014-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (CheckTokenMembership): Import.
|
|
* external.cc (cygwin_internal): Call get_uid/get_gid instead of get_id.
|
|
* grp.cc (internal_getgrsid): Take additional cyg_ldap pointer.
|
|
Forward to pwdgrp::add_group_from_windows.
|
|
(internal_getgrnam): Ditto.
|
|
(internal_getgrgid): Ditto.
|
|
(gr_ent::enumerate_local): Drop ugid_caching bool from call to
|
|
pwdgrp::fetch_account_from_windows.
|
|
(getgroups32): Rename from internal_getgroups and drop getgroups32 stub.
|
|
Drop srchsid parameter and code handling it. Add local cyg_ldap
|
|
instance and forward to internal_getgrXXX.
|
|
(getgroups): Call getgroups32.
|
|
(get_groups): Add local cyg_ldap instance and forward to
|
|
internal_getgrXXX.
|
|
(getgrouplist): Ditto.
|
|
(setgroups32): Ditto.
|
|
* ldap.cc (cyg_ldap::open): Don't call close. Return true if connection
|
|
is already open.
|
|
(cyg_ldap::remap_uid): Forward this to internal_getpwsid.
|
|
(cyg_ldap::remap_gid): Forward this to internal_getgrsid.
|
|
* passwd.cc (internal_getpwsid): Take additional cyg_ldap pointer.
|
|
Forward to pwdgrp::add_user_from_windows.
|
|
(internal_getpwnam): Ditto.
|
|
(internal_getpwuid): Ditto.
|
|
(pg_ent::enumerate_builtin): Drop ugid_caching bool from call to
|
|
pwdgrp::fetch_account_from_windows.
|
|
(pg_ent::enumerate_sam): Ditto.
|
|
(pg_ent::enumerate_ad): Ditto. Forward local cldap instead.
|
|
* pwdgrp.h (internal_getpwsid): Align declaration to above change.
|
|
(internal_getpwnam): Ditto.
|
|
(internal_getpwuid): Ditto.
|
|
(internal_getgrsid): Ditto.
|
|
(internal_getgrgid): Ditto.
|
|
(internal_getgrnam): Ditto.
|
|
(internal_getgroups): Drop declaration.
|
|
(pwdgrp::add_account_from_windows): Align declaration to below change.
|
|
(pwdgrp::add_user_from_windows): Ditto.
|
|
(pwdgrp::add_group_from_windows): Ditto.
|
|
* sec_acl.cc (setacl): Add local cyg_ldap instance and forward to
|
|
internal_getpwuid and internal_getgrgid.
|
|
(getacl): Add local cyg_ldap instance and forward to cygpsid::get_id.
|
|
(aclfromtext32): Add local cyg_ldap instance and forward to
|
|
internal_getpwnam and internal_getgrnam.
|
|
* sec_helper.cc (cygpsid::get_id): Take additional cyg_ldap pointer.
|
|
Forward to internal_getgrsid and internal_getpwsid.
|
|
(get_sids_info): Drop ldap_open. Forward local cldap to
|
|
internal_getpwsid and internal_getgrXXX. Call CheckTokenMembership
|
|
rather than internal_getgroups.
|
|
* security.h (cygpsid::get_id): Add cyg_ldap pointer, drop default
|
|
parameter.
|
|
(cygpsid::get_uid): Add cyg_ldap pointer. Call get_id accordingly.
|
|
(cygpsid::get_gid): Ditto.
|
|
* uinfo.cc (internal_getlogin): Add local cyg_ldap instance and forward
|
|
to internal_getpwXXX and internal_getgrXXX calls.
|
|
(pwdgrp::add_account_from_windows): Take additional cyg_ldap pointer.
|
|
Forward to pwdgrp::fetch_account_from_windows.
|
|
(fetch_posix_offset): Drop ldap_open argument and handling. Get
|
|
cyg_ldap instance as pointer.
|
|
(pwdgrp::fetch_account_from_windows): Take additional cyg_ldap pointer.
|
|
Use it if it's not NULL, local instance otherwise. Drop ldap_open.
|
|
Drop fetching extended group arguments from AD for speed.
|
|
|
|
2014-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (find_fast_cwd_pointer): Fix preceeding comment.
|
|
|
|
2014-02-25 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (fhandler_console::scroll_buffer_screen): New function.
|
|
* fhandler_console.cc (fhandler_console::scroll_buffer_screen): New function.
|
|
(fhandler_console::char_command): Use scroll_buffer_screen as appropriate.
|
|
(dev_console::scroll_buffer): Remove if 0'ed block.
|
|
|
|
2014-02-22 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* dev_console::scroll_buffer): Reinstate clipping region.
|
|
|
|
2014-02-22 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (dev_console::is_fullscreen): Delete.
|
|
(dev_console::scroll_window): Return bool indicating success.
|
|
(dev_console::scroll_screen): New function.
|
|
(dev_console::clear_screen): New function.
|
|
(fhandler_console::clear_screen): Make __reg3.
|
|
(fhandler_console::cursor_set): Ditto.
|
|
(fhandler_console::cursor_get): Ditto.
|
|
(fhandler_console::cursor_rel): Ditto.
|
|
* fhandler_console.cc (dev_console::scroll_buffer): Adapt from
|
|
fhandler_console.
|
|
(fhandler_console::scroll_buffer): Use dev_console function.
|
|
(dev_console::is_fullscreen): Delete.
|
|
(dev_console::scroll_window): Return true if we cleared the screen.
|
|
Shrink/grow buffer first before scrolling to ensure that there is
|
|
sufficient space after scrolling.
|
|
(fhandler_console::clear_screen): Make reg3, use dev_console function.
|
|
(dev_console::clear_screen): New function adapted from
|
|
fhandler_console.
|
|
(fhandler_console::cursor_set): Make __reg3.
|
|
(fhandler_console::cursor_rel): Ditto.
|
|
(fhandler_console::cursor_get): Ditto.
|
|
(fhandler_console::write): Fix "reverse index".
|
|
|
|
2014-02-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* external.cc (cygwin_internal): Add cases for CW_GETNSSSEP,
|
|
CW_GETPWSID and CW_GETGRSID.
|
|
* grp.cc (internal_getgrsid_from_db): New function.
|
|
* passwd.cc (internal_getpwsid_from_db): New function.
|
|
(pg_ent::setent): Add special case for call from mkpasswd/mkgroup.
|
|
* pwdgrp.h (internal_getpwsid_from_db): Declare.
|
|
(internal_getgrsid_from_db): Declare.
|
|
(enum nss_enum_t): Move to include/sys/cygwin.h.
|
|
(class pg_ent): Add comment.
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Fix typo in comment.
|
|
Change "UNIX" to "Unix" in domain name.
|
|
* include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GETNSSSEP,
|
|
CW_GETPWSID and CW_GETGRSID.
|
|
(enum nss_enum_t): Define here.
|
|
|
|
2014-02-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* pwdgrp.h (pwdgrp::fetch_account_from_windows): Add bool parameter
|
|
to declaration, set to true by default.
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Add bool parameter
|
|
"ugid_caching". Only add account to ugid_cache if set to true.
|
|
* grp.cc (gr_ent::enumerate_local): Call fetch_account_from_windows
|
|
with ugid_caching parameter set to false.
|
|
* passwd.cc (pg_ent::enumerate_builtin): Ditto.
|
|
(pg_ent::enumerate_sam): Ditto.
|
|
(pg_ent::enumerate_ad): Ditto.
|
|
|
|
2014-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (getgrouplist): Fix previous fix so ret is only set to ngroups
|
|
if ngroups isn't too small.
|
|
|
|
2014-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (get_groups): Don't add gid to list if it's ILLEGAL_GID.
|
|
(getgrouplist): Return number of groups, just like glibc.
|
|
|
|
2014-02-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* passwd.cc (pg_ent::setent): Initialize cygheap domain info.
|
|
* sec_auth.cc (get_logon_server): Ditto.
|
|
|
|
2014-02-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* external.cc (cygwin_internal): Handle new CW_SETENT, CW_GETENT and
|
|
CW_ENDENT info types.
|
|
* grp.cc (setgrent_filtered): New function, called from cygwin_internal.
|
|
(getgrent_filtered): Ditto.
|
|
(endgrent_filtered): Ditto.
|
|
* passwd.cc (pg_ent::setent): Set state explicitely to from_cache.
|
|
(pg_ent::getent): Handle the fact that a DC has no SAM and enumerating
|
|
local accounts is equivalent to enumerating domain accounts.
|
|
(setpwent_filtered): New function, called from cygwin_internal.
|
|
(getpwent_filtered): Ditto.
|
|
(endpwent_filtered): Ditto.
|
|
* pwdgrp.h (setpwent_filtered): Declare.
|
|
(getgrent_filtered): Ditto.
|
|
(endgrent_filtered): Ditto.
|
|
(setpwent_filtered): Ditto.
|
|
(getpwent_filtered): Ditto.
|
|
(endpwent_filtered): Ditto.
|
|
* include/sys/cygwin.h (cygwin_getinfo_types): Add CW_SETENT, CW_GETENT,
|
|
and CW_ENDENT.
|
|
|
|
2014-02-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* setlsapwd.cc (setlsapwd): Fix conditional expression after breaking
|
|
it on 2014-01-23.
|
|
|
|
2014-02-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (ldap_abandon): Import.
|
|
(ldap_result): Import.
|
|
(ldap_searchW): Import.
|
|
(NetGroupEnum): Import.
|
|
(NetLocalGroupEnum): Import.
|
|
(NetUserEnum): Import.
|
|
* cygheap.h (class cygheap_pwdgrp): Add members enums and enum_tdoms.
|
|
(cygheap_pwdgrp::nss_db_enums): New inline method.
|
|
(cygheap_pwdgrp::nss_db_enum_tdoms): Ditto.
|
|
* cygtls.h (struct _local_storage): Drop unused members pw_pos and
|
|
grp_pos.
|
|
* grp.cc (grent): New static variable of class gr_ent.
|
|
(gr_ent::enumerate_caches): New method.
|
|
(gr_ent::enumerate_local): New method.
|
|
(gr_ent::getgrent): New method.
|
|
(setgrent): Call gr_ent method.
|
|
(getgrent32): Ditto.
|
|
(endgrent): Ditto.
|
|
* ldap.cc (sid_attr): Rename from nfs_attr.
|
|
(cyg_ldap::close): Abandon still running asynchronous search.
|
|
(cyg_ldap::fetch_ad_account): Reduce filter buffer size.
|
|
(cyg_ldap::enumerate_ad_accounts): New method.
|
|
(cyg_ldap::next_account): New method.
|
|
(cyg_ldap::fetch_posix_offset_for_domain): Reduce filter buffer size.
|
|
(cyg_ldap::fetch_unix_sid_from_ad): Ditto. Fix return value in case
|
|
no value has been read.
|
|
(cyg_ldap::fetch_unix_name_from_rfc2307): Reduce filter buffer size.
|
|
* ldap.h (class cyg_ldap): Add msg_id member.
|
|
(cyg_ldap::enumerate_ad_accounts): Declare.
|
|
(cyg_ldap::next_account): Declare:
|
|
* passwd.cc (pwent): New static variable of class pw_ent.
|
|
(pg_ent::clear_cache): New method.
|
|
(pg_ent::setent): New method.
|
|
(pg_ent::getent): New method.
|
|
(pg_ent::endent): New method.
|
|
(pg_ent::enumerate_file): New method.
|
|
(pg_ent::enumerate_builtin): New method.
|
|
(pg_ent::enumerate_sam): New method.
|
|
(pg_ent::enumerate_ad): New method.
|
|
(pw_ent::enumerate_caches): New method.
|
|
(pw_ent::enumerate_local): New method.
|
|
(pw_ent::getpwent): New method.
|
|
(setpwent): Call pw_ent method.
|
|
(getpwent): Ditto.
|
|
(endpwent): Ditto.
|
|
* pwdgrp.h (class pwdgrp): Define pg_ent, pw_ent and gr_ent as friend
|
|
classes.
|
|
(pwdgrp::add_account_post_fetch): Declare with extra bool parameter.
|
|
(pwdgrp::file_attr): New inline method.
|
|
(enum nss_enum_t): Define.
|
|
(class pg_ent): Define.
|
|
(class pw_ent): Define.
|
|
(class gr_ent): Define.
|
|
* tlsoffsets.h: Regenerate.
|
|
* tlsoffsets64.h: Ditto.
|
|
* uinfo.cc (cygheap_pwdgrp::init): Initialize enums and enum_tdoms.
|
|
(cygheap_pwdgrp::nss_init_line): Fix typo in preceeding comment.
|
|
Handle new "db_enum" keyword.
|
|
(pwdgrp::add_account_post_fetch): Take additional `bool lock' parameter
|
|
and acquire pglock before adding element to array if lock is true.
|
|
(pwdgrp::add_account_from_file): Call add_account_post_fetch with lock
|
|
set to true.
|
|
(pwdgrp::add_account_from_windows): Ditto in case of caching.
|
|
(pwdgrp::fetch_account_from_windows): Handle builtin aliases only
|
|
known to the domain controller. Only call NetLocalGroupGetInfo for
|
|
aliases.
|
|
|
|
2014-02-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* miscfuncs.h (NT_readline::close): New function to close handle.
|
|
(NT_readline::~NT_readline): Call close.
|
|
* sec_auth.cc (verify_token): Use constructor to initialize tok_usersid.
|
|
* security.h (cygsid::cygsid): Add copy constructor taking cygsid as
|
|
source.
|
|
|
|
2014-02-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (dll_crt0_1): Call initial_setlocale before fetching
|
|
current user information.
|
|
|
|
2014-02-15 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* DevNotes: Add entry cgf-000024.
|
|
* fhandler.h (dev_console::state): Remove trailing underscore.
|
|
(dev_console::args): Ditto.
|
|
(dev_console::nargs): Ditto.
|
|
(dev_console::info): Eliminate subclass.
|
|
(dev_console::dwEnd): New field.
|
|
(dev_console::scroll_window): New function.
|
|
(dev_console::is_fullscreen): Ditto.
|
|
(dev_console::fillin): Rename from fillin_info.
|
|
(fhandler_console::scroll_buffer): Rename from scroll_screen.
|
|
* fhandler_console.cc: Throughout s/dev_state\.info/dev_state/g.
|
|
Accommodate other name changes.
|
|
(dev_console::fillin): Accommodate rename. Notice max x/y written to.
|
|
Forgo memset if GetConsoleScreenBufferInfo fails.
|
|
(fhandler_console::scroll_buffer): Accommodate rename. Don't treat y
|
|
coordinate of zero as top of screen.
|
|
(dev_console::is_fullscreen): New function.
|
|
(dev_console::scroll_window): Ditto.
|
|
(fhandler_console::clear_screen): Just scroll the screen when clearing
|
|
the screen in a state where the screen buffer is bigger than the
|
|
screen.
|
|
(fhandler_console::char_command): Try harder to get 'S' and 'T' working
|
|
in the presence of a screen buffer. Use temporary 'n' variable rather
|
|
than dev_state.args[0]. Use GNU ?: shortcut method.
|
|
|
|
2014-02-14 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* pinfo.cc (winpids::add): Always copy pinfo structure when winpid.
|
|
Fill out dwProcessId explicitly to handle exec from a windows process.
|
|
(winpids::enum_processes): Reorganize to iterate over known cygwin pids
|
|
when !winpid. Simplify logic. Don't do duplicate detection for
|
|
winpid.
|
|
|
|
2014-02-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Default to /bin/bash
|
|
as login shell.
|
|
|
|
2014-02-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ldap.cc (cyg_ldap::fetch_posix_offset_for_domain): If domain name
|
|
has no dot, it's a Netbios name. Change the search filter expression
|
|
accordingly and filter by flatName. Add comment.
|
|
* uinfo.cc (cygheap_domain_info::init): Gracefully handle NULL
|
|
DnsDomainName and DomainSid members in DS_DOMAIN_TRUSTSW structure.
|
|
Add comment. Fix comment preceeding fetching the mapping server
|
|
from registry.
|
|
(pwdgrp::fetch_account_from_file): Convert str to a local array.
|
|
(fetch_posix_offset): New static function.
|
|
(pwdgrp::fetch_account_from_windows): Add debug output in case
|
|
LookupAccountSidW fails. Simplify code by calling fetch_posix_offset
|
|
where appropriate. If LookupAccountSidW fails, check if the SID is
|
|
one of the known trusted domains. If so, create a more informative
|
|
account entry.
|
|
|
|
2014-02-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (cygheap_pwdgrp::nss_init_line): Explicitely ignore a colon
|
|
as separator char.
|
|
|
|
2014-02-11 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* winsup.h: Turn off previous workaround but leave a comment.
|
|
|
|
2014-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ldap.cc (rediscover_thread): Give argument a useful name.
|
|
* miscfuncs.cc (NT_readline::init): It's a really bad idea trying to
|
|
print a pointer to a PUNICODE_STRING as PUNICODE_STRING. Fix it.
|
|
* uinfo.cc (cygheap_domain_info::init): Print status codes as hex
|
|
values in debug output.
|
|
|
|
2014-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (NetLocalGroupGetInfo): Replace NetGroupGetInfo.
|
|
* cygheap.h (class cygheap_ugid_cache): Move ugid_cache_t type here
|
|
and rename.
|
|
(struct init_cygheap): Add cygheap_ugid_cache member "ugid_cache".
|
|
* pwdgrp.h (class ugid_cache_t): Remove here.
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Accommodate
|
|
move of ugid_cache to cygheap.
|
|
* sec_helper.cc (get_sids_info): Ditto.
|
|
* uinfo.cc (ugid_cache): Remove.
|
|
(pwdgrp::fetch_account_from_windows): Define id_val globally.
|
|
Move SidTypeAlias handling into SidTypeUser/SidTypeGroup branch since
|
|
aliases are handled like groups in SAM. Accommodate move of ugid_cache
|
|
to cygheap. Consolidate code reading SAM comments into a single branch
|
|
for both, SidTypeUser and SidTypeAlias. For SidTypeAlias, fix thinko
|
|
and call NetLocalGroupGetInfo rather than NetGroupGetInfo. Simplify
|
|
code setting Cygwin primary group for SAM accounts. Add code to handle
|
|
UNIX uid/gid from SAM comment.
|
|
|
|
2014-02-11 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* winsup.h (Interlocked*): Use intrinsic versions of Interlocked
|
|
functions.
|
|
|
|
* cygwin.sc.in: More closely emulate default pe/i386 linker script.
|
|
|
|
2014-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (cygheap_domain_info::init): Drop accidentally leftover if
|
|
statement.
|
|
|
|
2014-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (cygheap_domain_info::init): Fix handling of account domain
|
|
on donmain controllers. Explain why.
|
|
|
|
2014-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygheap.cc (cwcsdup): Change parameter to correct PWCSTR.
|
|
(cwcsdup1): Ditto.
|
|
* cygheap_malloc.h: Change declarations accordingly.
|
|
|
|
2014-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* uinfo.cc (pwdgrp::fetch_account_from_windows): Add code to allow
|
|
setting the primary group from the SAM comment field.
|
|
|
|
2014-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (child_info_spawn::handle_spawn): Call fixup_lockf_after_exec
|
|
with additional argument to specify if the process has been execed
|
|
or spawned.
|
|
* flock.cc (fixup_lockf_after_exec): Take bool parameter to handle
|
|
exec and spawn differently. In case of spawn, just give up POSIX
|
|
locks in favor of the still running parent. Add comments to explain.
|
|
|
|
2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* environ.cc (strbrk): Properly deal with environment variable sans
|
|
quote.
|
|
|
|
2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* environ.cc (strbrk): New function.
|
|
(parse_options): Use strbrk to parse CYGWIN environment variable.
|
|
|
|
2014-02-09 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
Introduce reading passwd/group entries from SAM/AD. Introduce
|
|
/etc/nsswitch.conf file to configure it.
|
|
* Makefile.in (DLL_OFILES): Add ldap.o.
|
|
* autoload.cc: Import ldap functions from wldap32.dll.
|
|
(DsEnumerateDomainTrustsW): Import.
|
|
(NetGroupGetInfo): Import.
|
|
* cygheap.h (class cygheap_domain_info): New class to keep global
|
|
domain info.
|
|
(class cygheap_pwdgrp): New class to keep passwd/group caches and
|
|
configuration info from /etc/nssswitch.conf.
|
|
(struct init_cygheap): Add cygheap_domain_info member "dom" and
|
|
cygheap_pwdgrp member "pg".
|
|
* cygtls.h (struct _local_storage): Remove unused member "res".
|
|
Rearrange slightly, Add members pwbuf and grbuf to implement non-caching
|
|
passwd/group fetching from SAM/AD. Make pw_pos and pw_pos unsigned.
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Add RFC 2307
|
|
uid/gid mapping.
|
|
* fhandler_process.cc: Drop including pwdgrp.h.
|
|
* fhandler_procsysvipc.cc: Ditto.
|
|
* fhandler_registry.cc (fhandler_registry::fstat): Set key uid/gid
|
|
to ILLEGAL_UID/ILLEGAL_GID rather than UNKNOWN_UID/UNKNOWN_GID.
|
|
* grp.cc (group_buf): Drop.
|
|
(gr): Drop.
|
|
(pwdgrp::parse_group): Fill pg_grp.
|
|
(pwdgrp::read_group): Remove.
|
|
(pwdgrp::init_grp): New method.
|
|
(pwdgrp::prep_tls_grbuf): New method.
|
|
(pwdgrp::find_group): New methods.
|
|
(internal_getgrsid): Convert to call new pwdgrp methods.
|
|
(internal_getgrnam): Ditto.
|
|
(internal_getgrgid): Ditto.
|
|
(getgrgid_r): Drop 2nd parameter from internal_getgrgid call.
|
|
(getgrgid32): Ditto.
|
|
(getgrnam_r): Ditto for internal_getgrnam.
|
|
(getgrnam32): Ditto.
|
|
(getgrent32): Convert to call new pwdgrp methods.
|
|
(internal_getgrent): Remove.
|
|
(internal_getgroups): Simplify, especially drop calls to
|
|
internal_getgrent.
|
|
* ldap.cc: New file implementing cyg_ldap class for LDAP access to AD
|
|
and RFC 2307 server.
|
|
* ldap.h: New header, declaring cyg_ldap class.
|
|
* passwd.cc (passwd_buf): Drop.
|
|
(pr): Drop.
|
|
(pwdgrp::parse_passwd): Fill pg_pwd.
|
|
(pwdgrp::read_passwd): Remove.
|
|
(pwdgrp::init_pwd): New method.
|
|
(pwdgrp::prep_tls_pwbuf): New method.
|
|
(find_user): New methods.
|
|
(internal_getpwsid): Convert to call new pwdgrp methods.
|
|
(internal_getpwnam): Ditto.
|
|
(internal_getpwuid): Ditto.
|
|
(getpwuid32): Drop 2nd parameter from internal_getpwuid call.
|
|
(getpwuid_r): Ditto.
|
|
(getpwnam): Ditto for internal_getpwnam.
|
|
(getpwnam_r): Ditto.
|
|
(getpwent): Convert to call new pwdgrp methods.
|
|
* path.cc (class etc): Remove all methods.
|
|
* path.h (class etc): Drop.
|
|
* pinfo.cc (pinfo_basic::pinfo_basic): Set gid to ILLEGAL_GID rather
|
|
than UNKNOWN_GID.
|
|
(pinfo_init): Ditto.
|
|
* pwdgrp.h (internal_getpwnam): Drop 2nd parameter from declaration.
|
|
(internal_getpwuid): Ditto.
|
|
(internal_getgrgid): Ditto.
|
|
(internal_getgrnam): Ditto.
|
|
(internal_getgrent): Drop declaration.
|
|
(enum fetch_user_arg_type_t): New type.
|
|
(struct fetch_user_arg_t): New type.
|
|
(struct pg_pwd): New type.
|
|
(struct pg_grp): New type.
|
|
(class pwdgrp): Rework to provide functions for file and db requests
|
|
and caching.
|
|
(class ugid_cache_t): New class to provide RFC 2307 uid map caching.
|
|
(ugid_cache): Declare.
|
|
* sec_acl.cc: Drop including pwdgrp.h.
|
|
* sec_auth.cc: Drop including dsgetdc.h and pwdgrp.h.
|
|
(get_logon_server): Convert third parameter to ULONG flags argument
|
|
to allow arbitrary flags values in DsGetDcNameW call and change calls
|
|
to this function throughout. Use cached account domain name rather
|
|
than calling GetComputerNameW.
|
|
(get_unix_group_sidlist): Remove.
|
|
(get_server_groups): Drop call to get_unix_group_sidlist.
|
|
(verify_token): Rework token group check without calling
|
|
internal_getgrent.
|
|
* sec_helper.cc (cygpsid::pstring): New methods, like string() but
|
|
return pointer to end of string.
|
|
(cygsid::getfromstr): Add wide character implementation.
|
|
(get_sids_info): Add RFC 2307 uid/gid mapping for Samba shares.
|
|
* security.cc: Drop including pwdgrp.h.
|
|
* security.h (DEFAULT_UID): Remove.
|
|
(UNKNOWN_UID): Remove.
|
|
(UNKNOWN_GID): Remove.
|
|
(uinfo_init): Move here from winsup.h.
|
|
(ILLEGAL_UID): Ditto.
|
|
(ILLEGAL_GID): Ditto.
|
|
(UNIX_POSIX_OFFSET): Define. Add lengthy comment.
|
|
(UNIX_POSIX_MASK): Ditto.
|
|
(MAP_UNIX_TO_CYGWIN_ID): Ditto.
|
|
(ILLEGAL_UID16): Move here from winsup.h.
|
|
(ILLEGAL_GID16): Ditto.
|
|
(uid16touid32): Ditto.
|
|
(gid16togid32): Ditto.
|
|
(sid_id_auth): New convenience macro for SID component access.
|
|
(sid_sub_auth_count): Ditto.
|
|
(sid_sub_auth): Ditto.
|
|
(sid_sub_auth_rid): Ditto.
|
|
(cygpsid::pstring): Declare.
|
|
(cygsid::getfromstr): Declare wide character variant.
|
|
(cygsid::operator=): Ditto.
|
|
(cygsid::operator*=): Ditto.
|
|
(get_logon_server): Change declaration according to source code.
|
|
* setlsapwd.cc (setlsapwd): Drop 2nd parameter from internal_getpwnam
|
|
call.
|
|
* shared.cc (memory_init): Call cygheap->pg.init in first process.
|
|
* syscalls.cc: Drop including pwdgrp.h.
|
|
* tlsoffsets.h: Regenerate.
|
|
* tlsoffsets64.h: Ditto.
|
|
* uinfo.cc (internal_getlogin): Drop gratuitious internal_getpwuid
|
|
call. Fix debug output. Overwrite user gid in border case of a
|
|
missing passwd file while a group file exists.
|
|
(pwdgrp::add_line): Allocate memory on cygheap.
|
|
(pwdgrp::load): Remove.
|
|
(ugid_cache): Define.
|
|
(cygheap_pwdgrp::init): New method.
|
|
(cygheap_pwdgrp::nss_init_line): New method.
|
|
(cygheap_pwdgrp::_nss_init): New method.
|
|
(cygheap_domain_info::init): New method.
|
|
(logon_sid): Define.
|
|
(get_logon_sid): New function.
|
|
(pwdgrp::add_account_post_fetch): New method.
|
|
(pwdgrp::add_account_from_file): New methods.
|
|
(pwdgrp::add_account_from_windows): New methods.
|
|
(pwdgrp::check_file): New method.
|
|
(pwdgrp::fetch_account_from_line): New method.
|
|
(pwdgrp::fetch_account_from_file): New method.
|
|
(pwdgrp::fetch_account_from_windows): New method.
|
|
* winsup.h: Move aforementioned macros and declarations to security.h.
|
|
|
|
2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* sigproc.cc (sig_send): Don't bother with an error message if we are
|
|
exiting.
|
|
|
|
2014-02-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* miscfuncs.h (class NT_readline): New class to implement line-wise
|
|
reading from file using native NT functions.
|
|
* miscfuncs.cc (NT_readline::init): New method.
|
|
(NT_readline::fgets): New method.
|
|
* mount.cc (mount_info::from_fstab): Utilize NT_readline to read
|
|
fstab files.
|
|
|
|
2014-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fchown): Fix typo in
|
|
comment.
|
|
* mount.cc (mount_info::from_fstab): Use tmp_pathbuf rather than
|
|
stack for big local buffer.
|
|
* net.cc (cygwin_gethostname): Call GetComputerNameExA rather than
|
|
GetComputerNameA if gethostname failed.
|
|
* shared.cc (user_info::initialize): Fix formatting.
|
|
|
|
2014-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/file.h: Define flock and accompanying macros if not
|
|
already defined in sys/_default_fcntl.h.
|
|
|
|
2014-02-04 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/version.h (CYGWIN_VERSION_DLL_MINOR): Bump to 29.
|
|
|
|
2014-01-30 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dir.cc (opendir): Call set_unique_id only with valid fh.
|
|
|
|
2014-01-30 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (cltype): Add cl_buf_beg, cl_buf_end.
|
|
* fhandler_console.cc (dev_console::console_attrs::set_cl_x): Honor
|
|
buffer locations.
|
|
(dev_console::console_attrs::set_cl_y): Ditto.
|
|
(fhandler_console::write): On reset, use absolute positioning to go to
|
|
beginning of buffer. Clear entire buffer.
|
|
|
|
2014-01-27 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* gendef (_setjmp (x86)): Save FPU control word location in sequential
|
|
location. Adjust sigstack save accordingly.
|
|
(_longjmp (x86)): Ditto for restore.
|
|
|
|
2014-01-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* gendef (sigdelayed (x86_64)): Save and restore FPU control word.
|
|
(_sigdelayed (x86)): Ditto. Save and restore XMM registers. Add
|
|
comment.
|
|
(_setjmp (x86)): Save FPU control word, following FreeBSD here.
|
|
(_longjmp (x86)): Restore FPU control word.
|
|
|
|
2014-01-24 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* winf.cc (linebuf::fromargv): Treat '=' as a special character.
|
|
|
|
2014-01-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* security.h (open_local_policy): Remove declaration.
|
|
(lsa_open_policy): Declare.
|
|
(lsa_close_policy): Declare.
|
|
* sec_auth.cc (lsa_open_policy): Rename from open_local_policy. Take
|
|
server name as parameter. Return NULL in case of error, rather than
|
|
INVALID_HANDLE_VALUE.
|
|
(lsa_close_policy): Rename from close_local_policy. Make externally
|
|
available. Get handle by value.
|
|
(create_token): Convert call to open_local_policy/close_local_policy
|
|
according to aforementioned changes.
|
|
(lsaauth): Ditto.
|
|
(lsaprivkeyauth): Ditto.
|
|
* setlsapwd.cc (setlsapwd): Ditto.
|
|
|
|
2014-01-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (etc::test_file_change): In case of NtQueryFullAttributesFile
|
|
returning an error, only return true if file actually exists.
|
|
|
|
2014-01-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/in6.h (struct ipv6_rt_hdr): Define.
|
|
* include/cygwin/socket.h: Fix formatting.
|
|
(IP_UNICAST_IF): Define.
|
|
(IPV6_JOIN_GROUP): Remove Windowism.
|
|
(IPV6_LEAVE_GROUP): Ditto.
|
|
(IPV6_UNICAST_IF): Define.
|
|
(IPV6_TCLASS): Ditto.
|
|
(IPV6_RECVTCLASS): Ditto.
|
|
|
|
2014-01-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/netinet/ip6.h: New file, copied from FreeBSD vebatim.
|
|
|
|
2014-01-17 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* dtable.h (dtable::lock): Revert static.
|
|
(dtable::unlock): Ditto.
|
|
|
|
2014-01-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* passwd.cc (setpassent): Align to BSD definition.
|
|
|
|
2014-01-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (popen): Introduce Glibc 'e' flag to allow thread-safe
|
|
opening of the pipe with O_CLOEXEC flag. Simplify FD_CLOEXEC handling.
|
|
|
|
2014-01-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/file.h (LOCK_SH): Drop definition in favor of new
|
|
definitions in newlib.
|
|
(LOCK_EX): Ditto.
|
|
(LOCK_NB): Ditto.
|
|
(LOCK_UN): Ditto.
|
|
(flock): Ditto.
|
|
(F_OK): Drop. Already correctly defined in unistd.h.
|
|
(X_OK): Ditto.
|
|
(W_OK): Ditto.
|
|
(R_OK): Ditto.
|
|
|
|
2014-01-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/config.h (_STDIO_BSD_SEMANTICS): Define as 1.
|
|
|
|
2014-01-16 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* dtable.h (dtable::lock): Make static.
|
|
(dtable::unlock): Ditto.
|
|
|
|
2014-01-08 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* exception.h (cygwin_exception::open_stackdumpfile): Move old
|
|
function into class.
|
|
(cygwin_exception::h): New member.
|
|
(cygwin_exception::cygwin_exception): Initialize h to NULL.
|
|
* exceptions.cc (cygwin_exception::open_stackdumpfile): Move into
|
|
cygwin_exception class. Use 'h' class member.
|
|
(cygwin_exception::dumpstack): Close stack dump file handle if opened.
|
|
|
|
2014-01-04 Christopher Faylor <me.cygwin2014@cgf.cx>
|
|
|
|
* fhandler.h (cltype): New enum.
|
|
(dev_console::console_attrs): Define struct name.
|
|
(dev_console::console_attrs::set_cl_x): New function.
|
|
(dev_console::console_attrs::set_cl_y): New function.
|
|
(fhandler_console::clear_screen): Redefine input params.
|
|
* fhandler_console.cc: Throughout, reflect change in arguments to
|
|
fhandler_console::clear_screeen.
|
|
(fhandler_console::mouse_aware): Simplify logic slightly.
|
|
(fhandler_console::scroll_screen): Remove hopefully obsolete win95
|
|
code.
|
|
(dev_console::console_attrs::set_cl_x): New function.
|
|
(dev_console::console_attrs::set_cl_y): New function.
|
|
(fhandler_console::clear_screen): Redefine input params. Calculate
|
|
position based on enum value.
|
|
(region_split): Change arguments. Simplify.
|
|
(ReadConsoleOutputWrapper): Remove coord argument since we now always
|
|
use 0, 0. Send extra arguments to region_split.
|