summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't allowCorinna Vinschen2007-07-293-19/+38
| | | | | | | | | | | | FileAttributes set to 0 when calling NtSetInformationFile since it has a special meaning. (fhandler_disk_file::facl): Ditto. (fhandler_disk_file::link): Only set attributes after copying files. Use SetFileAttributesW. * syscalls.cc (unlink_nt): Only care for actual FILE_ATTRIBUTE_READONLY. Don't allow FileAttributes set to 0 when calling NtSetInformationFile. After marking for deletion, restore R/O attribute on files to accommodate hardlinks.
* * fhandler_disk_file.cc (fhandler_disk_file::link): Use FILE_ANY_ACCESS.Corinna Vinschen2007-07-294-133/+134
| | | | | | | | | | | | | | | | | | | (fhandler_base::utimes_fs): Fix white space. (fhandler_disk_file::lock): Remove 9x blurb from comment. (fhandler_disk_file::mkdir): Use NtCreateFile/NtClose instead of CreateDirectoryA. (fhandler_disk_file::rmdir): Accommodate changes to unlink_nt. Simplify post-delete SMB-related tests. Use NtQueryAttributesFile instead of GetFileAttributes. * ntdll.h (STATUS_DIRECTORY_NOT_EMPTY): Define. (NtQueryAttributesFile): Declare. * syscalls.cc (unlink_nt): Return NTSTATUS. Drop setattrs parameter. Never use FILE_DELETE_ON_CLOSE, always use NtSetInformationFile(FileDispositionInformation) instead. Check for R/O attributes and open file with FILE_WRITE_ATTRIBUTES access if any of them are set. Remove R/O attributes before marking for delete if necessary. Revert them afterwards if necessary. (unlink): Accommodate changes to unlink_nt.
* * fhandler_disk_file.cc: Use get_handle throughout.Corinna Vinschen2007-07-293-43/+83
| | | | | | | | | | | | | (fhandler_disk_file::fchmod): Always try to open file with required access rights. Use NtSetInformationFile instead of SetFileAttributes. (fhandler_disk_file::facl): Use NtSetInformationFile instead of SetFileAttributes. (fhandler_base::utimes_fs): Change lastaccess and lastwrite to LARGE_INTEGER. Drop 9x directory case. Use NtSetInformationFile instead of SetFileAttributes. Drop temporarily changing R/O attribute since NtSetInformationFile(FileBasicInformation) also works on R/O files. * ntdll.h (STATUS_NOT_SUPPORTED): Define.
* * cygtls.h (_cygtls::inside_kernel): Move function declaration into _cygtlsChristopher Faylor2007-07-296-23/+61
| | | | | | | | | | | | | | class. * exceptions.cc (_cygtls::inside_kernel): Move function definition into _cygtls class. * fhandler.cc (fhandler_base::wait_overlapped): Make return tri-state to detect when there is a EINTR situation. Add a pointer to a length parameter. Move GetOverlappedResult into this function. (fhandler_base::read_overlapped): Accommodate above changes and loop if we receive a restartable signal. (fhandler_base::write_overlapped): Ditto. * fhandler.h (fhandler_base::wait_overlapped): Reflect above changes. * fhandler_fifo.cc (fhandler_fifo::wait): Ditto.
* * ntdll.h (RtlEqualUnicodePathPrefix): Rename from RtlEqualPathPrefix.Corinna Vinschen2007-07-283-10/+17
| | | | | | (RtlEqualUnicodePathSuffix): Rename from RtlEqualPathSuffix. * fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate above change.
* * ntdll.h (RtlInitCountedUnicodeString): Swap order of string and lengthCorinna Vinschen2007-07-283-22/+61
| | | | | | | | | | parameters to be the same as for RtlInitEmptyUnicodeString. (RtlEqualPathPrefix): New inline function. (RtlEqualPathSuffix): New inline function. * fhandler_disk_file.cc: Accommodate parameter order change of RtlInitEmptyUnicodeString throughout. (fhandler_disk_file::link): Do path checking in unicode. Call CopyFileW instead of CopyFileA.
* * autoload.cc (CreateHardLinkA): Remove.Corinna Vinschen2007-07-274-118/+68
| | | | | | | | | * fhandler_disk_file.cc (fhandler_disk_file::link): Drop GetBinaryType test. Just check exe suffix instead. Tune creating new file name. Implement creating hard link using native NT functions which works on all platforms. * ntdll.h (STATUS_INVALID_DEVICE_REQUEST): Define. (struct _FILE_LINK_INFORMATION): Define.
* * fhandler_disk_file.cc (fhandler_disk_file::ftruncate): UseCorinna Vinschen2007-07-272-12/+20
| | | | | NtQueryInformationFile instead of GetFileSize, NtFsControlFile instead of DeviceIoControl.
* * fhandler_disk_file.cc (fhandler_base::fstat_by_name): UseCorinna Vinschen2007-07-273-36/+55
| | | | | | | | RtlSplitUnicodePath. (fhandler_disk_file::fstat): Rename oret to opened. Open file using NT functions right here. Try to open parent dir instead of root directory to avoid call to rootdir. Use NtFsControlFile. * ntdll.h (RtlSplitUnicodePath): Define.
* * fhandler_disk_file.cc (is_volume_mountpoint): New static inlineCorinna Vinschen2007-07-272-40/+40
| | | | | | function. (path_conv::ndisk_links): Call is_volume_mountpoint. (fhandler_disk_file::readdir_helper): Ditto.
* * fhandler.h (enum query_state): Drop redundant query_stat_control.Corinna Vinschen2007-07-274-20/+18
| | | | | | | | | * fhandler.cc (fhandler_base::open): Ditto. Add READ_CONTROL to access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening for writing. Always set security attributes to avoid calling has_acls. * fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to open file twice.
* * dir.cc (readdir_worker): Drop dir parameter from call toCorinna Vinschen2007-07-2612-270/+573
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | readdir_get_ino. * fhandler.h (fhandler_disk_file::readdir_helper): Switch file name parameter to PUNICODE_STRING. * fhandler_disk_file.cc: Drop including ntdef.h. (class __DIR_mounts): Store mount points in UNICODE. Additionally store cygdrive prefix in unicode here. Change methods accordingly. (__DIR_mounts::eval_ino): Call new stat_worker instead of lstat64. (__DIR_mounts::~__DIR_mounts): New destructor to free UNICODE buffers. (path_conv::ndisk_links): Rewrite using native NT functions. (fhandler_base::fstat_by_handle): Use NAME_MAX instead of CYG_MAX_PATH. Always set pfvi->VolumeSerialNumber to non-0. Remove last resort code. (fhandler_base::fstat_by_name): Rewrite using native NT functions. (fhandler_base::fstat_fs): Always call fstat_by_name if fstat_by_handle fails. (fhandler_base::fstat_helper): Rely on dwVolumeSerialNumber. (fhandler_disk_file::facl): Call fstat_by_name if fstat_by_handle fails. (DIR_BUF_SIZE): Define using NAME_MAX instead of CYG_MAX_PATH. (__DIR_cache): Remove __name. (d_dirname): Remove. (fhandler_disk_file::opendir): Drop pathname length check. Remove outdated comment. Use get_name method instead of accessing pc.normalized_path directly. (readdir_get_ino): Drop unused dir parameter. Accomodate throughout. Allocate fname dynamically. Call new stat_worker instead of lstat64. Call NtOpenFile instead of CreateFile. Call NtClose instead of CloseHandle. (fhandler_disk_file::readdir_helper): Use native NT functions. Check for volume mount points and use correct inode number. (fhandler_disk_file::readdir): Simplify slightly. Use get_name instead of pc.normalized_path. (fhandler_disk_file::rewinddir): Use RtlInitUnicodeString. (fhandler_cygdrive::fstat): Ignore floppy drives. Set st_nlink correctly. (fhandler_cygdrive::readdir): Ignore floppy drives. * fhandler_netdrive.cc (fhandler_netdrive::readdir): Accommodate change to readdir_get_ino. * fhandler_proc.cc (PROC_DIR_COUNT): Define. (fhandler_proc::fstat): Evaluate correct link count for /proc. * ntdll.h (struct _FILE_DIRECTORY_INFORMATION): Define. (NtFsControlFile): Declare. (RtlAppendUnicodeToString): Declare. (RtlAppendUnicodeStringToString): Declare. (RtlCompareUnicodeString): Declare. (RtlCopyUnicodeString): Declare. (RtlCreateUnicodeStringFromAsciiz): Declare. (RtlEqualUnicodeString): Declare. (RtlFreeUnicodeString): Declare. (RtlInitEmptyUnicodeString): Declare. (RtlSecondsSince1970ToTime): Declare. (RtlInitEmptyUnicodeString): Define as inline function. (RtlInitCountedUnicodeString): Define as inline function. * path.cc (path_conv::check): New method with PUNICODE_STRING as path, preliminary implementation. (mount_info::get_mounts_here): Change to create UNICODE_STRINGs. Also copy cygpath prefix into UNICODE_STRING. (is_floppy): Drop 9x consideration. * path.h: Drop including ntdef.h. (path_conv::check): Add declaration. (path_conv::path_conv): Add constructor for UNICODE_STRING paths. * shared_info.h (mount_info::get_mounts_here): Change declaration. * syscalls.cc: Drop forward declaration of stat_worker. (stat_worke): Take path_conv as parameter. Drop nofollow flag. (stat64): Create matching path_conv and call stat_worker with it. (lstat64): Ditto. * winsup.h: Include ntdef.h. (stat_worker): Declare. (readdir_get_ino): Change declaration.
* * autoload.cc (CreateToolhelp32Snapshot): Remove.Corinna Vinschen2007-07-252-1/+4
|
* * autoload.cc (Process32First): Remove.Corinna Vinschen2007-07-252-2/+5
| | | | (Process32Next): Remove.
* * include/wtypes.h (LPDECIMAL): Define.Danny Smith2007-07-252-6/+12
| | | | (DECIMAL_NEG, DECIMAL_SETZERO): Move definitions.
* * autoload.cc (NetWkstaUserGetInfo): Remove.Corinna Vinschen2007-07-252-5/+8
| | | | | | | (CharToOemBuffA): Remove. (KillTimer): Remove. (OemToCharBuffA): Remove. (SetTimer): Remove.
* * ternary.h: Remove.Ben Elliston2007-07-252-51/+4
|
* Add missing ChangeLog entry.Corinna Vinschen2007-07-241-0/+1
|
* * dumper.cc: Change license to plain GPLv2 + later.Corinna Vinschen2007-07-245-10/+386
| | | | | * dumper.h: Ditto. * parse_pe.cc: Ditto.
* * Makefile.in (SUBDIRS): Delete stray line continuation artifact,Keith Marshall2007-07-232-2/+10
| | | | | resulting from incomplete removal of enclosing `for ...; do ...; done' loop from compound command; (reported by Greg Chicares).
* * strace.cc (create_child): Don't convert a path from cygwin format unless itChristopher Faylor2007-07-232-1/+7
| | | | has a slash.
* * bsd_helper.cc: Drop unnecessary security.h include.Corinna Vinschen2007-07-212-1/+4
|
* Fix ChangeLogCorinna Vinschen2007-07-201-2/+0
|
* * fhandler.cc (fhandler_base::fhaccess): Accommodate interface changesCorinna Vinschen2007-07-2010-1381/+1287
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | of access control functions throughout. * fhandler_disk_file.cc: Ditto. * fhandler_registry.cc: Ditto. * sec_acl.cc: Drop unnecessary includes. (setacl): Take path_conv instead of file name as parameter. Accommodate interface changes of access control functions. (getacl): Ditto. * sec_auth.cc: New file, taking over all authentication related functions from security.cc. * sec_helper.cc: Drop unnecessary includes. * security.cc: Ditto. Move all authentication related functions to sec_auth.cc. (ALL_SECURITY_INFORMATION): New define. Use throughout. (set_file_sd): New function, replacing read_sd and the file related part of get_nt_object_security. (get_reg_sd): Rename from get_reg_security. Drop type parameter. (get_reg_attribute): New function, replacing the registry related part of get_nt_object_security. (get_file_attribute): Take path_conv instead of file name as parameter. Use new get_file_sd call. (set_file_attribute): Ditto plus new set_file_sd. Drop unnecessary implementation without uid/gid parameters. (check_file_access): Take path_conv instead of file name as parameter. Use new get_file_sd call. (check_registry_access): Use new get_reg_sd call. * security.h: Accommodate above interface changes.
* * security.cc (set_nt_attribute): Remove.Corinna Vinschen2007-07-192-21/+16
| | | | | (set_file_attribute): Do it yourself instead of calling set_nt_attribute.
* * fhandler_disk_file.cc (fhandler_base::fstat_by_name): UseCorinna Vinschen2007-07-193-29/+43
| | | | | | | | NtQueryFullAttributesFile instead of FindFirstFile. (fhandler_base::fstat_fs): Drop check for exec_state. Drop check for invalid characters. * ntdll.h (struct _FILE_NETWORK_OPEN_INFORMATION): Define. (NtQueryFullAttributesFile): Declare.
* * fhandler.cc (fhandler_base::open): Drop local wpath and upathCorinna Vinschen2007-07-196-24/+74
| | | | | | | | | | | | | | | | | variables. Call pc.get_object_attr to create object attributes. * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto. * syscalls.cc (unlink_nt): Ditto. * path.cc (path_conv::set_normalized_path): Set wide_path to NULL. (path_conv::get_nt_native_path): Drop parameter. Create path in wide_path/uni_path members. (path_conv::get_object_attr): New method to create object attributes. (path_conv::get_wide_win32_path): New method to create Win32 wide path. (path_conv::check): Initialize wide_path to NULL. (path_conv::~path_conv): cfree wide_path. * path.h (class path_conv): New members wide_path and uni_path. Add declarations of get_object_attr and get_wide_win32_path. (path_conv::path_conv): Initialize wide_path to NULL. (path_conv::get_nt_native_path): Drop parameter.
* * include/fcntl.h (_O_WTEXT, _O_U16TEXT, _O_U8TEXT) Define forDanny Smith2007-07-192-1/+12
| | | | Vista.
* * sec_helper.cc: Remove unused code.Corinna Vinschen2007-07-192-71/+4
|
* * autoload.cc (SetSecurityDescriptorControl): Drop.Corinna Vinschen2007-07-195-22/+25
| | | | | | | | * security.cc (alloc_sd): Set security descriptor control flag without calling SetSecurityDescriptorControl function. * wincap.h (wincapc::has_dacl_protect): Rename from has_security_descriptor_control. * wincap.cc: Ditto throughout.
* * autoload.cc (SetUserObjectSecurity): Drop.Corinna Vinschen2007-07-195-7/+24
| | | | | | | | * pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of SetKernelObjectSecurity. * spawn.cc (spawn_guts): Use NtSetSecurityObject instead of SetUserObjectSecurity. * uinfo.cc (cygheap_user::init): Ditto.
* * cygheap.h (init_cygheap::luid): Remove.Corinna Vinschen2007-07-199-170/+302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * mmap.cc (mlock): Accommodate parameter change in call to push_thread_privilege. (munlock): Ditto. * ntdll.h (STATUS_NOT_ALL_ASSIGNED): Define. (NtAdjustPrivilegesToken): Declare. * sec_helper.cc (cygpriv): Reorder to match numerical privilege order. (privilege_luid): Take job of privilege_luid_by_name, using new cygpriv. (privilege_luid_by_name): Remove. (privilege_name): Accommodate new cygpriv array. (set_privilege): Call NtAdjustPrivilegesToken to avoid using advapi32. Accommodate changes to privilege_name. (set_cygwin_privileges): Simplify. Don't try to set SE_CREATE_GLOBAL_PRIVILEGE on systems not supporting it. * security.cc (sys_privs): Reorder to match numerical privilege order. Use real privilege values as defined in security.h. (get_system_priv_list): Drop unused grp_list argument. Create list of privileges according to new wincapc::max_sys_priv value. (get_priv_list): Call privilege_luid instead of privilege_luid_by_name. Make priv a local value instead of a pointer. (create_token): Accommodate parameter change in call to push_self_privilege. (lsaauth): Ditto. (check_access): Use privilege values directly instead of calling privilege_luid. * security.h: Define real privilege values. (cygpriv_idx): Remove. (privilege_luid): Change declaration. (privilege_luid_by_name): Drop declaration. (set_privilege): Change declaration. (set_process_privilege): Drop definition. (_push_thread_privilege): Accomodate new set_privilege parameters. * wincap.h (wincapc::max_sys_priv): New element. * wincap.cc: Implement above element throughout. (wincap_2000sp4): New wincaps structure. (wincap_xpsp1): Ditto. (wincap_xpsp2): Ditto. (wincapc::init): Use new wincaps. (wincapc::max_sys_priv): New element.
* * dcrt0.cc (dll_crt0_0): Call set_cygwin_privileges here, afterCorinna Vinschen2007-07-193-2/+8
| | | | | initializing hProcToken. * sec_helper.cc (init_global_security): Don't call set_cygwin_privileges here.
* Fix 'make info'.Eric Blake2007-07-199-20/+39
| | | | | | | | | | | | * libc/stdio/stdio.tex: Add missing include. * libc/stdio/vfprintf.c: Use expected node name. * libc/stdio/vfscanf.c: Likewise. * libc/stdio/sscanf.c: Likewise. * libc/stdio/sprintf.c: Likewise. * libc/stdio/siscanf.c: Likewise. * libc/stdio/siprintf.c: Likewise. * libc/stdio/fopencookie.c: Quote raw {}. Reported by DJ Delorie.
* * xtensa-config.h (XCHAL_HAVE_THREADPTR): New.Bob Wilson2007-07-182-1/+15
| | | | (XCHAL_HAVE_RELEASE_SYNC, XCHAL_HAVE_S32C1I): New.
* Fix date type for 1.15 release.Jeff Johnston2007-07-181-1/+1
|
* * faq-using.xml (faq.using.console-window): Mention FHS location ofBrian Dessent2007-07-182-5/+7
| | | | docs and remove outdated reference to ash.
* * include/winnt.h (SE_TRUSTED_CREDMAN_ACCESS_NAME): Define.Corinna Vinschen2007-07-182-0/+5
|
* * cygheap.h (shared_prefix): De-const.Corinna Vinschen2007-07-183-2/+13
| | | | | | | (shared_prefix_buf): Add static buffer for shared prefix to avoid additional allocation. * cygheap.cc (cygheap_init): Set cygheap->shared_prefix to cygheap->shared_prefix_buf and strcpy.
* * fhandler.cc (fhandler_base::fhaccess): Add check for R/O file system.Corinna Vinschen2007-07-173-1/+16
| | | | | * security.cc (check_registry_access): Set errno to EROFS when checking for W_OK.
* * include/winnt.h (FILE_READ_ONLY_VOLUME): Define.Corinna Vinschen2007-07-173-0/+7
| | | | * include/ddk/ntifs.h (FILE_READ_ONLY_VOLUME): Define.
* * COPYING3: New file. Contains version 3 of the GNU General Public License.Nick Clifton2007-07-175-0/+1525
| | | | * COPYING3.LIB: New file. Contains version 3 of the GNU Lesser General Public License.
* * fhandler_disk_file.cc (fhandler_disk_file::opendir): Move settingCorinna Vinschen2007-07-172-3/+8
| | | | cfd->nohandle where it won't crash.
* * cygheap.h (cygheap_user::curr_imp_token): Rename from current_token.Corinna Vinschen2007-07-167-16/+28
| | | | | | | | | | | Accommodate changge throughout Cygwin. (cygheap_user::imp_token): Rename from token. Accommodate changge throughout Cygwin. (rcygheap_user::eimpersonate): Use primary token for impersonation. * grp.cc (internal_getgroups): Use primary impersonation token when impersonated. * security.h (_push_thread_privilege): Use primary impersonation token when impersonated.
* * init.cc (in_dllentry): Delete.Christopher Faylor2007-07-145-7/+10
| | | | | | | (dll_entry): Remove assignment to deleted variable. * winsup.h (in_dllentry): Delete declaration. * exceptions.cc (inside_kernel): Use another method to see if we are in dll_entry phase.
* * init.cc (in_dllentry): Make NO_COPY to avoid spurious false positives.Christopher Faylor2007-07-142-1/+6
|
* Fix fflush issues.Eric Blake2007-07-1317-67/+152
| | | | | | | | | | | | | | | | | | | | | * libc/stdio/fflush.c (_fflush_r): New function. (fflush): Fix reentrancy and large offset behavior. * libc/include/stdio.h (_fflush_r): Add prototype. * libc/stdio/fclose.c (_fclose_r): All fflush callers changed. * libc/stdio/freopen.c (_freopen_r): Likewise. * libc/stdio/fseek.c (_fseek_r): Likewise. * libc/stdio/ftell.c (_ftell_r): Likewise. * libc/stdio/fvwrite.c (__sfvwrite_r): Likewise. * libc/stdio/refill.c (__srefill_r): Likewise. * libc/stdio/setvbuf.c (setvbuf): Likewise. * libc/stdio/ungetc.c (_ungetc_r): Likewise. * libc/stdio/vfprintf.c (__sbprintf): Likewise. * libc/stdio/wbuf.c (__swbuf_r): Likewise. * libc/stdio64/freopen64.c (_freopen64_r): Likewise. * libc/stdio64/fseeko64.c (_fseeko64_r): Likewise. Defer to 32-bit version if not large file. * libc/stdio64/ftello64.c (_ftello64_r): Likewise. * libc/stdio64/tmpfile64.c (_tmpfile64_r): Avoid compile warning.
* merge from gccDJ Delorie2007-07-131-17/+17
|
* * mep/fmax.ld, mep/gmap_default.ld, mep/min.ld, mep/simple.ldKevin Buettner2007-07-135-4/+9
| | | | (.gcc_except_table): Add pattern for .gcc_except_table.*.
* Documentation updates.Eric Blake2007-07-135-49/+111
| | | | | | | | * libc/stdio/ungetc.c: Document ungetc. * libc/stdio/Makefile.am (CHEWOUT_FILES): Sort, match current list of files with documentation. * libc/stdio/Makefile.in: Regenerate. * libc/stdio/stdio.tex: Sort and update stdio documentation index.