diff options
author | cvs2svn <> | 2014-02-18 19:58:41 +0000 |
---|---|---|
committer | cvs2svn <> | 2014-02-18 19:58:41 +0000 |
commit | b5279ecc51ff751ccd052fbb7c20efd529575f7e (patch) | |
tree | 64141e96a5d64ae59fb7f410270e4daa41878a03 /winsup/lsaauth/cyglsa.c | |
parent | a2a48cb593a9b3cc3f5c63c39f52c32db31cec50 (diff) | |
download | cygnal-cygwin-pre-user-db.tar.gz cygnal-cygwin-pre-user-db.tar.bz2 cygnal-cygwin-pre-user-db.zip |
This commit was manufactured by cvs2svn to create tag 'cygwin-pre-user-db'.cygwin-pre-user-db
Sprout from cygwin-1_7_29-release-branchpoint 2014-02-18 19:58:40 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'cygwin-1_7_29'
Cherrypick from master 2014-02-08 22:25:11 UTC Corinna Vinschen <corinna@vinschen.de> 'Fix ChangeLog':
winsup/cygwin/ChangeLog
winsup/cygwin/miscfuncs.cc
winsup/cygwin/miscfuncs.h
winsup/cygwin/mount.cc
Delete:
winsup/COPYING
winsup/CYGWIN_LICENSE
winsup/ChangeLog
winsup/Makefile.common
winsup/Makefile.in
winsup/README
winsup/acinclude.m4
winsup/aclocal.m4
winsup/autogen.sh
winsup/c++wrap
winsup/ccwrap
winsup/config.guess
winsup/config.sub
winsup/configure
winsup/configure.ac
winsup/configure.cygwin
winsup/cygserver/ChangeLog
winsup/cygserver/ChangeLog.64bit
winsup/cygserver/Makefile.in
winsup/cygserver/README
winsup/cygserver/aclocal.m4
winsup/cygserver/autogen.sh
winsup/cygserver/bsd_helper.cc
winsup/cygserver/bsd_helper.h
winsup/cygserver/bsd_log.cc
winsup/cygserver/bsd_log.h
winsup/cygserver/bsd_mutex.cc
winsup/cygserver/bsd_mutex.h
winsup/cygserver/client.cc
winsup/cygserver/configure
winsup/cygserver/configure.ac
winsup/cygserver/cygserver-config
winsup/cygserver/cygserver.cc
winsup/cygserver/cygserver.conf
winsup/cygserver/msg.cc
winsup/cygserver/process.cc
winsup/cygserver/process.h
winsup/cygserver/sem.cc
winsup/cygserver/setpwd.cc
winsup/cygserver/shm.cc
winsup/cygserver/sysv_msg.cc
winsup/cygserver/sysv_sem.cc
winsup/cygserver/sysv_shm.cc
winsup/cygserver/threaded_queue.cc
winsup/cygserver/threaded_queue.h
winsup/cygserver/transport.cc
winsup/cygserver/transport.h
winsup/cygserver/transport_pipes.cc
winsup/cygserver/transport_pipes.h
winsup/cygserver/woutsup.h
winsup/cygwin/release/1.7.29
winsup/doc/.cvsignore
winsup/doc/ChangeLog
winsup/doc/Makefile.in
winsup/doc/README
winsup/doc/Wishlist
winsup/doc/aclocal.m4
winsup/doc/bodysnatcher.pl
winsup/doc/configure
winsup/doc/configure.ac
winsup/doc/cygserver.xml
winsup/doc/cygwin-api.in.xml
winsup/doc/cygwin-ug-net.xml
winsup/doc/cygwin.xsl
winsup/doc/cygwinenv.xml
winsup/doc/dll.xml
winsup/doc/doctool.c
winsup/doc/doctool.txt
winsup/doc/effectively.xml
winsup/doc/faq-api.xml
winsup/doc/faq-copyright.xml
winsup/doc/faq-programming.xml
winsup/doc/faq-resources.xml
winsup/doc/faq-setup.xml
winsup/doc/faq-using.xml
winsup/doc/faq-what.xml
winsup/doc/faq.xml
winsup/doc/fhandler-tut.txt
winsup/doc/filemodes.xml
winsup/doc/fo.xsl
winsup/doc/gcc.xml
winsup/doc/gdb.xml
winsup/doc/highlights.xml
winsup/doc/legal.xml
winsup/doc/new-features.xml
winsup/doc/ntsec.xml
winsup/doc/ov-ex-unix.xml
winsup/doc/ov-ex-win.xml
winsup/doc/overview.xml
winsup/doc/pathnames.xml
winsup/doc/programming.xml
winsup/doc/setup-env.xml
winsup/doc/setup-files.xml
winsup/doc/setup-locale.xml
winsup/doc/setup-maxmem.xml
winsup/doc/setup-net.xml
winsup/doc/specialnames.xml
winsup/doc/textbinary.xml
winsup/doc/ug-info.xml
winsup/doc/using.xml
winsup/doc/windres.xml
winsup/doc/xidepend
winsup/install-sh
winsup/lsaauth/ChangeLog
winsup/lsaauth/ChangeLog.64bit
winsup/lsaauth/Makefile.in
winsup/lsaauth/aclocal.m4
winsup/lsaauth/configure
winsup/lsaauth/configure.ac
winsup/lsaauth/cyglsa-config
winsup/lsaauth/cyglsa.c
winsup/lsaauth/cyglsa.din
winsup/lsaauth/cyglsa64.def
winsup/testsuite/ChangeLog
winsup/testsuite/Makefile.in
winsup/testsuite/README
winsup/testsuite/aclocal.m4
winsup/testsuite/config/default.exp
winsup/testsuite/configure
winsup/testsuite/configure.ac
winsup/testsuite/cygrun.c
winsup/testsuite/libltp/include/dataascii.h
winsup/testsuite/libltp/include/databin.h
winsup/testsuite/libltp/include/file_lock.h
winsup/testsuite/libltp/include/forker.h
winsup/testsuite/libltp/include/open_flags.h
winsup/testsuite/libltp/include/pattern.h
winsup/testsuite/libltp/include/random_range.h
winsup/testsuite/libltp/include/rmobj.h
winsup/testsuite/libltp/include/search_path.h
winsup/testsuite/libltp/include/str_to_bytes.h
winsup/testsuite/libltp/include/string_to_tokens.h
winsup/testsuite/libltp/include/test.h
winsup/testsuite/libltp/include/tlibio.h
winsup/testsuite/libltp/include/usctest.h
winsup/testsuite/libltp/include/write_log.h
winsup/testsuite/libltp/lib/dataascii.c
winsup/testsuite/libltp/lib/databin.c
winsup/testsuite/libltp/lib/datapid.c
winsup/testsuite/libltp/lib/forker.c
winsup/testsuite/libltp/lib/get_high_address.c
winsup/testsuite/libltp/lib/libtestsuite.c
winsup/testsuite/libltp/lib/open_flags.c
winsup/testsuite/libltp/lib/parse_opts.c
winsup/testsuite/libltp/lib/pattern.c
winsup/testsuite/libltp/lib/rmobj.c
winsup/testsuite/libltp/lib/search_path.c
winsup/testsuite/libltp/lib/str_to_bytes.c
winsup/testsuite/libltp/lib/string_to_tokens.c
winsup/testsuite/libltp/lib/tst_res.c
winsup/testsuite/libltp/lib/tst_sig.c
winsup/testsuite/libltp/lib/tst_tmpdir.c
winsup/testsuite/libltp/lib/write_log.c
winsup/testsuite/winsup.api/checksignal.c
winsup/testsuite/winsup.api/crlf.c
winsup/testsuite/winsup.api/cygload.cc
winsup/testsuite/winsup.api/cygload.exp
winsup/testsuite/winsup.api/cygload.h
winsup/testsuite/winsup.api/devdsp.c
winsup/testsuite/winsup.api/devdsp_okay.h
winsup/testsuite/winsup.api/devzero.c
winsup/testsuite/winsup.api/iospeed.c
winsup/testsuite/winsup.api/known_bugs.tcl
winsup/testsuite/winsup.api/ltp/access01.c
winsup/testsuite/winsup.api/ltp/access03.c
winsup/testsuite/winsup.api/ltp/access04.c
winsup/testsuite/winsup.api/ltp/access05.c
winsup/testsuite/winsup.api/ltp/alarm01.c
winsup/testsuite/winsup.api/ltp/alarm02.c
winsup/testsuite/winsup.api/ltp/alarm03.c
winsup/testsuite/winsup.api/ltp/alarm07.c
winsup/testsuite/winsup.api/ltp/asyncio02.c
winsup/testsuite/winsup.api/ltp/chdir02.c
winsup/testsuite/winsup.api/ltp/chdir04.c
winsup/testsuite/winsup.api/ltp/chmod01.c
winsup/testsuite/winsup.api/ltp/chmod02.c
winsup/testsuite/winsup.api/ltp/chown01.c
winsup/testsuite/winsup.api/ltp/close01.c
winsup/testsuite/winsup.api/ltp/close02.c
winsup/testsuite/winsup.api/ltp/close08.c
winsup/testsuite/winsup.api/ltp/creat01.c
winsup/testsuite/winsup.api/ltp/creat03.c
winsup/testsuite/winsup.api/ltp/creat09.c
winsup/testsuite/winsup.api/ltp/dup01.c
winsup/testsuite/winsup.api/ltp/dup02.c
winsup/testsuite/winsup.api/ltp/dup03.c
winsup/testsuite/winsup.api/ltp/dup04.c
winsup/testsuite/winsup.api/ltp/dup05.c
winsup/testsuite/winsup.api/ltp/execl01.c
winsup/testsuite/winsup.api/ltp/execle01.c
winsup/testsuite/winsup.api/ltp/execlp01.c
winsup/testsuite/winsup.api/ltp/execv01.c
winsup/testsuite/winsup.api/ltp/execve01.c
winsup/testsuite/winsup.api/ltp/execvp01.c
winsup/testsuite/winsup.api/ltp/exit01.c
winsup/testsuite/winsup.api/ltp/exit02.c
winsup/testsuite/winsup.api/ltp/fchdir01.c
winsup/testsuite/winsup.api/ltp/fchdir02.c
winsup/testsuite/winsup.api/ltp/fchmod01.c
winsup/testsuite/winsup.api/ltp/fchown01.c
winsup/testsuite/winsup.api/ltp/fcntl02.c
winsup/testsuite/winsup.api/ltp/fcntl03.c
winsup/testsuite/winsup.api/ltp/fcntl04.c
winsup/testsuite/winsup.api/ltp/fcntl05.c
winsup/testsuite/winsup.api/ltp/fcntl07.c
winsup/testsuite/winsup.api/ltp/fcntl07B.c
winsup/testsuite/winsup.api/ltp/fcntl08.c
winsup/testsuite/winsup.api/ltp/fcntl09.c
winsup/testsuite/winsup.api/ltp/fcntl10.c
winsup/testsuite/winsup.api/ltp/fork01.c
winsup/testsuite/winsup.api/ltp/fork02.c
winsup/testsuite/winsup.api/ltp/fork03.c
winsup/testsuite/winsup.api/ltp/fork04.c
winsup/testsuite/winsup.api/ltp/fork06.c
winsup/testsuite/winsup.api/ltp/fork07.c
winsup/testsuite/winsup.api/ltp/fork09.c
winsup/testsuite/winsup.api/ltp/fork10.c
winsup/testsuite/winsup.api/ltp/fork11.c
winsup/testsuite/winsup.api/ltp/fpathconf01.c
winsup/testsuite/winsup.api/ltp/fstat01.c
winsup/testsuite/winsup.api/ltp/fstat02.c
winsup/testsuite/winsup.api/ltp/fstat03.c
winsup/testsuite/winsup.api/ltp/fstat04.c
winsup/testsuite/winsup.api/ltp/fsync01.c
winsup/testsuite/winsup.api/ltp/ftruncate01.c
winsup/testsuite/winsup.api/ltp/ftruncate02.c
winsup/testsuite/winsup.api/ltp/ftruncate03.c
winsup/testsuite/winsup.api/ltp/getegid01.c
winsup/testsuite/winsup.api/ltp/geteuid01.c
winsup/testsuite/winsup.api/ltp/getgid01.c
winsup/testsuite/winsup.api/ltp/getgid02.c
winsup/testsuite/winsup.api/ltp/getgid03.c
winsup/testsuite/winsup.api/ltp/getgroups01.c
winsup/testsuite/winsup.api/ltp/getgroups02.c
winsup/testsuite/winsup.api/ltp/gethostid01.c
winsup/testsuite/winsup.api/ltp/gethostname01.c
winsup/testsuite/winsup.api/ltp/getpgid01.c
winsup/testsuite/winsup.api/ltp/getpgid02.c
winsup/testsuite/winsup.api/ltp/getpgrp01.c
winsup/testsuite/winsup.api/ltp/getpid01.c
winsup/testsuite/winsup.api/ltp/getpid02.c
winsup/testsuite/winsup.api/ltp/getppid01.c
winsup/testsuite/winsup.api/ltp/getppid02.c
winsup/testsuite/winsup.api/ltp/getuid01.c
winsup/testsuite/winsup.api/ltp/getuid02.c
winsup/testsuite/winsup.api/ltp/getuid03.c
winsup/testsuite/winsup.api/ltp/kill01.c
winsup/testsuite/winsup.api/ltp/kill02.c
winsup/testsuite/winsup.api/ltp/kill03.c
winsup/testsuite/winsup.api/ltp/kill04.c
winsup/testsuite/winsup.api/ltp/kill09.c
winsup/testsuite/winsup.api/ltp/link02.c
winsup/testsuite/winsup.api/ltp/link03.c
winsup/testsuite/winsup.api/ltp/link04.c
winsup/testsuite/winsup.api/ltp/link05.c
winsup/testsuite/winsup.api/ltp/lseek01.c
winsup/testsuite/winsup.api/ltp/lseek02.c
winsup/testsuite/winsup.api/ltp/lseek03.c
winsup/testsuite/winsup.api/ltp/lseek04.c
winsup/testsuite/winsup.api/ltp/lseek05.c
winsup/testsuite/winsup.api/ltp/lseek06.c
winsup/testsuite/winsup.api/ltp/lseek07.c
winsup/testsuite/winsup.api/ltp/lseek08.c
winsup/testsuite/winsup.api/ltp/lseek09.c
winsup/testsuite/winsup.api/ltp/lseek10.c
winsup/testsuite/winsup.api/ltp/lstat02.c
winsup/testsuite/winsup.api/ltp/mkdir01.c
winsup/testsuite/winsup.api/ltp/mkdir08.c
winsup/testsuite/winsup.api/ltp/mknod01.c
winsup/testsuite/winsup.api/ltp/mmap001.c
winsup/testsuite/winsup.api/ltp/mmap02.c
winsup/testsuite/winsup.api/ltp/mmap03.c
winsup/testsuite/winsup.api/ltp/mmap04.c
winsup/testsuite/winsup.api/ltp/mmap05.c
winsup/testsuite/winsup.api/ltp/mmap06.c
winsup/testsuite/winsup.api/ltp/mmap07.c
winsup/testsuite/winsup.api/ltp/mmap08.c
winsup/testsuite/winsup.api/ltp/munmap01.c
winsup/testsuite/winsup.api/ltp/munmap02.c
winsup/testsuite/winsup.api/ltp/nice05.c
winsup/testsuite/winsup.api/ltp/open02.c
winsup/testsuite/winsup.api/ltp/open03.c
winsup/testsuite/winsup.api/ltp/pathconf01.c
winsup/testsuite/winsup.api/ltp/pause01.c
winsup/testsuite/winsup.api/ltp/pipe01.c
winsup/testsuite/winsup.api/ltp/pipe08.c
winsup/testsuite/winsup.api/ltp/pipe09.c
winsup/testsuite/winsup.api/ltp/pipe10.c
winsup/testsuite/winsup.api/ltp/pipe11.c
winsup/testsuite/winsup.api/ltp/poll01.c
winsup/testsuite/winsup.api/ltp/read01.c
winsup/testsuite/winsup.api/ltp/read04.c
winsup/testsuite/winsup.api/ltp/readdir01.c
winsup/testsuite/winsup.api/ltp/readlink01.c
winsup/testsuite/winsup.api/ltp/readlink02.c
winsup/testsuite/winsup.api/ltp/readlink03.c
winsup/testsuite/winsup.api/ltp/rename01.c
winsup/testsuite/winsup.api/ltp/rename02.c
winsup/testsuite/winsup.api/ltp/rename08.c
winsup/testsuite/winsup.api/ltp/rename10.c
winsup/testsuite/winsup.api/ltp/rmdir01.c
winsup/testsuite/winsup.api/ltp/rmdir04.c
winsup/testsuite/winsup.api/ltp/rmdir05.c
winsup/testsuite/winsup.api/ltp/sbrk01.c
winsup/testsuite/winsup.api/ltp/select01.c
winsup/testsuite/winsup.api/ltp/select02.c
winsup/testsuite/winsup.api/ltp/select03.c
winsup/testsuite/winsup.api/ltp/setgid01.c
winsup/testsuite/winsup.api/ltp/setgroups01.c
winsup/testsuite/winsup.api/ltp/setpgid01.c
winsup/testsuite/winsup.api/ltp/setregid01.c
winsup/testsuite/winsup.api/ltp/setreuid01.c
winsup/testsuite/winsup.api/ltp/setuid01.c
winsup/testsuite/winsup.api/ltp/setuid02.c
winsup/testsuite/winsup.api/ltp/signal03.c
winsup/testsuite/winsup.api/ltp/stat01.c
winsup/testsuite/winsup.api/ltp/stat02.c
winsup/testsuite/winsup.api/ltp/stat03.c
winsup/testsuite/winsup.api/ltp/stat05.c
winsup/testsuite/winsup.api/ltp/stat06.c
winsup/testsuite/winsup.api/ltp/symlink01.c
winsup/testsuite/winsup.api/ltp/symlink02.c
winsup/testsuite/winsup.api/ltp/symlink03.c
winsup/testsuite/winsup.api/ltp/symlink04.c
winsup/testsuite/winsup.api/ltp/symlink05.c
winsup/testsuite/winsup.api/ltp/sync01.c
winsup/testsuite/winsup.api/ltp/sync02.c
winsup/testsuite/winsup.api/ltp/time01.c
winsup/testsuite/winsup.api/ltp/time02.c
winsup/testsuite/winsup.api/ltp/times01.c
winsup/testsuite/winsup.api/ltp/times02.c
winsup/testsuite/winsup.api/ltp/times03.c
winsup/testsuite/winsup.api/ltp/truncate01.c
winsup/testsuite/winsup.api/ltp/truncate02.c
winsup/testsuite/winsup.api/ltp/ulimit01.c
winsup/testsuite/winsup.api/ltp/umask01.c
winsup/testsuite/winsup.api/ltp/umask02.c
winsup/testsuite/winsup.api/ltp/umask03.c
winsup/testsuite/winsup.api/ltp/uname01.c
winsup/testsuite/winsup.api/ltp/unlink05.c
winsup/testsuite/winsup.api/ltp/unlink06.c
winsup/testsuite/winsup.api/ltp/unlink07.c
winsup/testsuite/winsup.api/ltp/unlink08.c
winsup/testsuite/winsup.api/ltp/vfork01.c
winsup/testsuite/winsup.api/ltp/wait02.c
winsup/testsuite/winsup.api/ltp/wait401.c
winsup/testsuite/winsup.api/ltp/wait402.c
winsup/testsuite/winsup.api/ltp/write01.c
winsup/testsuite/winsup.api/ltp/write02.c
winsup/testsuite/winsup.api/ltp/write03.c
winsup/testsuite/winsup.api/mmaptest01.c
winsup/testsuite/winsup.api/mmaptest02.c
winsup/testsuite/winsup.api/mmaptest03.c
winsup/testsuite/winsup.api/mmaptest04.c
winsup/testsuite/winsup.api/msgtest.c
winsup/testsuite/winsup.api/nullgetcwd.c
winsup/testsuite/winsup.api/pthread/cancel1.c
winsup/testsuite/winsup.api/pthread/cancel10.c
winsup/testsuite/winsup.api/pthread/cancel11.c
winsup/testsuite/winsup.api/pthread/cancel12.c
winsup/testsuite/winsup.api/pthread/cancel2.c
winsup/testsuite/winsup.api/pthread/cancel3.c
winsup/testsuite/winsup.api/pthread/cancel4.c
winsup/testsuite/winsup.api/pthread/cancel5.c
winsup/testsuite/winsup.api/pthread/cancel6.c
winsup/testsuite/winsup.api/pthread/cancel7.c
winsup/testsuite/winsup.api/pthread/cancel8.c
winsup/testsuite/winsup.api/pthread/cancel9.c
winsup/testsuite/winsup.api/pthread/cleanup2.c
winsup/testsuite/winsup.api/pthread/cleanup3.c
winsup/testsuite/winsup.api/pthread/condvar1.c
winsup/testsuite/winsup.api/pthread/condvar2.c
winsup/testsuite/winsup.api/pthread/condvar2_1.c
winsup/testsuite/winsup.api/pthread/condvar3.c
winsup/testsuite/winsup.api/pthread/condvar3_1.c
winsup/testsuite/winsup.api/pthread/condvar3_2.c
winsup/testsuite/winsup.api/pthread/condvar3_3.c
winsup/testsuite/winsup.api/pthread/condvar4.c
winsup/testsuite/winsup.api/pthread/condvar5.c
winsup/testsuite/winsup.api/pthread/condvar6.c
winsup/testsuite/winsup.api/pthread/condvar7.c
winsup/testsuite/winsup.api/pthread/condvar8.c
winsup/testsuite/winsup.api/pthread/condvar9.c
winsup/testsuite/winsup.api/pthread/count1.c
winsup/testsuite/winsup.api/pthread/create1.c
winsup/testsuite/winsup.api/pthread/create2.c
winsup/testsuite/winsup.api/pthread/equal1.c
winsup/testsuite/winsup.api/pthread/exit1.c
winsup/testsuite/winsup.api/pthread/exit2.c
winsup/testsuite/winsup.api/pthread/exit3.c
winsup/testsuite/winsup.api/pthread/inherit1.c
winsup/testsuite/winsup.api/pthread/join0.c
winsup/testsuite/winsup.api/pthread/join1.c
winsup/testsuite/winsup.api/pthread/join2.c
winsup/testsuite/winsup.api/pthread/mainthreadexits.c
winsup/testsuite/winsup.api/pthread/mutex1.c
winsup/testsuite/winsup.api/pthread/mutex1d.c
winsup/testsuite/winsup.api/pthread/mutex1e.c
winsup/testsuite/winsup.api/pthread/mutex1n.c
winsup/testsuite/winsup.api/pthread/mutex1r.c
winsup/testsuite/winsup.api/pthread/mutex2.c
winsup/testsuite/winsup.api/pthread/mutex3.c
winsup/testsuite/winsup.api/pthread/mutex4.c
winsup/testsuite/winsup.api/pthread/mutex5.c
winsup/testsuite/winsup.api/pthread/mutex6d.c
winsup/testsuite/winsup.api/pthread/mutex6e.c
winsup/testsuite/winsup.api/pthread/mutex6n.c
winsup/testsuite/winsup.api/pthread/mutex6r.c
winsup/testsuite/winsup.api/pthread/mutex7.c
winsup/testsuite/winsup.api/pthread/mutex7d.c
winsup/testsuite/winsup.api/pthread/mutex7e.c
winsup/testsuite/winsup.api/pthread/mutex7n.c
winsup/testsuite/winsup.api/pthread/mutex7r.c
winsup/testsuite/winsup.api/pthread/mutex8e.c
winsup/testsuite/winsup.api/pthread/mutex8n.c
winsup/testsuite/winsup.api/pthread/mutex8r.c
winsup/testsuite/winsup.api/pthread/once1.c
winsup/testsuite/winsup.api/pthread/priority1.c
winsup/testsuite/winsup.api/pthread/priority2.c
winsup/testsuite/winsup.api/pthread/rwlock1.c
winsup/testsuite/winsup.api/pthread/rwlock2.c
winsup/testsuite/winsup.api/pthread/rwlock3.c
winsup/testsuite/winsup.api/pthread/rwlock4.c
winsup/testsuite/winsup.api/pthread/rwlock5.c
winsup/testsuite/winsup.api/pthread/rwlock6.c
winsup/testsuite/winsup.api/pthread/rwlock7.c
winsup/testsuite/winsup.api/pthread/self1.c
winsup/testsuite/winsup.api/pthread/self2.c
winsup/testsuite/winsup.api/pthread/test.h
winsup/testsuite/winsup.api/pthread/threadidafterfork.c
winsup/testsuite/winsup.api/pthread/tsd1.c
winsup/testsuite/winsup.api/resethand.c
winsup/testsuite/winsup.api/samples/sample-fail.c
winsup/testsuite/winsup.api/samples/sample-miscompile.c
winsup/testsuite/winsup.api/samples/sample-pass.c
winsup/testsuite/winsup.api/semtest.c
winsup/testsuite/winsup.api/shmtest.c
winsup/testsuite/winsup.api/sigchld.c
winsup/testsuite/winsup.api/signal-into-win32-api.c
winsup/testsuite/winsup.api/systemcall.c
winsup/testsuite/winsup.api/user_malloc.c
winsup/testsuite/winsup.api/waitpid.c
winsup/testsuite/winsup.api/winsup.exp
winsup/utils/COPYING.dumper
winsup/utils/ChangeLog
winsup/utils/ChangeLog-2000
winsup/utils/ChangeLog.64bit
winsup/utils/Makefile.in
winsup/utils/aclocal.m4
winsup/utils/autogen.sh
winsup/utils/bloda.cc
winsup/utils/configure
winsup/utils/configure.ac
winsup/utils/cygcheck.cc
winsup/utils/cygpath.cc
winsup/utils/cygwin-console-helper.cc
winsup/utils/dump_setup.cc
winsup/utils/dumper.cc
winsup/utils/dumper.h
winsup/utils/getconf.c
winsup/utils/getfacl.c
winsup/utils/kill.cc
winsup/utils/ldd.cc
winsup/utils/ldh.cc
winsup/utils/loadlib.h
winsup/utils/locale.cc
winsup/utils/minidumper.cc
winsup/utils/mkgroup.c
winsup/utils/mkpasswd.c
winsup/utils/module_info.cc
winsup/utils/mount.cc
winsup/utils/parse_pe.cc
winsup/utils/passwd.c
winsup/utils/path.cc
winsup/utils/path.h
winsup/utils/pldd.c
winsup/utils/ps.cc
winsup/utils/regtool.cc
winsup/utils/setfacl.c
winsup/utils/setmetamode.c
winsup/utils/ssp.c
winsup/utils/ssp.txt
winsup/utils/strace.cc
winsup/utils/testsuite.cc
winsup/utils/testsuite.h
winsup/utils/tzset.c
winsup/utils/umount.cc
winsup/utils/utils.xml
winsup/utils/wide_path.h
Diffstat (limited to 'winsup/lsaauth/cyglsa.c')
-rw-r--r-- | winsup/lsaauth/cyglsa.c | 633 |
1 files changed, 0 insertions, 633 deletions
diff --git a/winsup/lsaauth/cyglsa.c b/winsup/lsaauth/cyglsa.c deleted file mode 100644 index 341fdd12c..000000000 --- a/winsup/lsaauth/cyglsa.c +++ /dev/null @@ -1,633 +0,0 @@ -/* cyglsa.c: LSA authentication module for Cygwin - - Copyright 2006, 2008, 2010, 2011, 2012 Red Hat, Inc. - - Written by Corinna Vinschen <corinna@vinschen.de> - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ - -#define WINVER 0x0600 -#include <ntstatus.h> -#include <windows.h> -#include <wininet.h> -#include <lmcons.h> -#include <iptypes.h> -#include <ntsecapi.h> -#include "../cygwin/cyglsa.h" -#include "../cygwin/include/cygwin/version.h" - -static PLSA_SECPKG_FUNCS funcs; -static BOOL must_create_logon_sid; - -BOOL APIENTRY -DllMain (HINSTANCE inst, DWORD reason, LPVOID res) -{ - switch (reason) - { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} - -/* Declare NTDLL functions here to avoid problems with different - header file layout in different compiler environments. */ -#ifndef NT_SUCCESS -#define NT_SUCCESS(s) ((s) >= 0) -#endif -/* These standard POSIX functions are implemented in NTDLL and exported. - There's just no header to define them and using wchar.h from mingw - or Cygwin seems wrong somehow. */ -wchar_t *__cdecl wcscpy (wchar_t *, const wchar_t *); -size_t __cdecl wcslen (const wchar_t *); - -#ifndef RtlInitEmptyUnicodeString -__inline VOID NTAPI -RtlInitEmptyUnicodeString(PUNICODE_STRING dest, PCWSTR buf, USHORT len) -{ - dest->Length = 0; - dest->MaximumLength = len; - dest->Buffer = (PWSTR) buf; -} -#endif - -static PUNICODE_STRING -uni_alloc (PWCHAR src, USHORT len) -{ - PUNICODE_STRING tgt; - - if (!(tgt = funcs->AllocateLsaHeap (sizeof (UNICODE_STRING)))) - return NULL; - tgt->Length = len * sizeof (WCHAR); - tgt->MaximumLength = tgt->Length + sizeof (WCHAR); - if (!(tgt->Buffer = funcs->AllocateLsaHeap (tgt->MaximumLength))) - { - funcs->FreeLsaHeap (tgt); - return NULL; - } - wcscpy (tgt->Buffer, src); - return tgt; -} - -/* No, I don't want to include stdio.h so I take what ntdll offers. */ -extern int _vsnprintf (char *, size_t, const char *, va_list); - -static HANDLE fh = INVALID_HANDLE_VALUE; - -static int -cyglsa_printf (const char *format, ...) -{ - char buf[256]; - DWORD wr; - int ret; - va_list ap; - - if (fh == INVALID_HANDLE_VALUE) - return 0; - - va_start (ap, format); - ret = _vsnprintf (buf, 256, format, ap); - va_end (ap); - if (ret <= 0) - return ret; - if (ret > 256) - ret = 255; - buf[255] = '\0'; - WriteFile (fh, buf, ret, &wr, NULL); - return wr; -} - -static void -print_sid (const char *prefix, int idx, PISID sid) -{ - DWORD i; - - cyglsa_printf ("%s", prefix); - if (idx >= 0) - cyglsa_printf ("[%d] ", idx); - cyglsa_printf ("(0x%08x) ", (INT_PTR) sid); - if (!sid) - cyglsa_printf ("NULL\n"); - else if (IsBadReadPtr (sid, 8)) - cyglsa_printf ("INVALID POINTER\n"); - else if (!IsValidSid ((PSID) sid)) - cyglsa_printf ("INVALID SID\n"); - else if (IsBadReadPtr (sid, 8 + sizeof (DWORD) * sid->SubAuthorityCount)) - cyglsa_printf ("INVALID POINTER SPACE\n"); - else - { - cyglsa_printf ("S-%d-%d", sid->Revision, sid->IdentifierAuthority.Value[5]); - for (i = 0; i < sid->SubAuthorityCount; ++i) - cyglsa_printf ("-%lu", sid->SubAuthority[i]); - cyglsa_printf ("\n"); - } -} - -static void -print_groups (PTOKEN_GROUPS grps) -{ - DWORD i; - - cyglsa_printf ("Groups: (0x%08x) ", (INT_PTR) grps); - if (!grps) - cyglsa_printf ("NULL\n"); - else if (IsBadReadPtr (grps, sizeof (DWORD))) - cyglsa_printf ("INVALID POINTER\n"); - else if (IsBadReadPtr (grps, sizeof (DWORD) + sizeof (SID_AND_ATTRIBUTES) - * grps->GroupCount)) - cyglsa_printf ("INVALID POINTER SPACE\n"); - else - { - cyglsa_printf ("Count: %lu\n", grps->GroupCount); - for (i = 0; i < grps->GroupCount; ++i) - { - cyglsa_printf ("(attr: 0x%lx)", grps->Groups[i].Attributes); - print_sid (" ", i, (PISID) grps->Groups[i].Sid); - } - } -} - -static void -print_privs (PTOKEN_PRIVILEGES privs) -{ - DWORD i; - - cyglsa_printf ("Privileges: (0x%08x) ", (INT_PTR) privs); - if (!privs) - cyglsa_printf ("NULL\n"); - else if (IsBadReadPtr (privs, sizeof (DWORD))) - cyglsa_printf ("INVALID POINTER\n"); - else if (IsBadReadPtr (privs, sizeof (DWORD) + sizeof (LUID_AND_ATTRIBUTES) - * privs->PrivilegeCount)) - cyglsa_printf ("INVALID POINTER SPACE\n"); - else - { - cyglsa_printf ("Count: %lu\n", privs->PrivilegeCount); - for (i = 0; i < privs->PrivilegeCount; ++i) - cyglsa_printf ("Luid: {%ld, %lu} Attributes: 0x%lx\n", - privs->Privileges[i].Luid.HighPart, - privs->Privileges[i].Luid.LowPart, - privs->Privileges[i].Attributes); - } -} - -static void -print_dacl (PACL dacl) -{ - DWORD i; - - cyglsa_printf ("DefaultDacl: (0x%08x) ", (INT_PTR) dacl); - if (!dacl) - cyglsa_printf ("NULL\n"); - else if (IsBadReadPtr (dacl, sizeof (ACL))) - cyglsa_printf ("INVALID POINTER\n"); - else if (IsBadReadPtr (dacl, dacl->AclSize)) - cyglsa_printf ("INVALID POINTER SPACE\n"); - else - { - cyglsa_printf ("Rev: %d, Count: %d\n", dacl->AclRevision, dacl->AceCount); - for (i = 0; i < dacl->AceCount; ++i) - { - PVOID vace; - PACCESS_ALLOWED_ACE ace; - - if (!GetAce (dacl, i, &vace)) - cyglsa_printf ("[%lu] GetAce error %lu\n", i, GetLastError ()); - else - { - ace = (PACCESS_ALLOWED_ACE) vace; - cyglsa_printf ("Type: %x, Flags: %x, Access: %lx,", - ace->Header.AceType, ace->Header.AceFlags, (DWORD) ace->Mask); - print_sid (" ", i, (PISID) &ace->SidStart); - } - } - } -} - -static void -print_tokinf (PLSA_TOKEN_INFORMATION_V2 ptok, size_t size, - PVOID got_start, PVOID gotinf_start, PVOID gotinf_end) -{ - if (fh == INVALID_HANDLE_VALUE) - return; - - cyglsa_printf ("INCOMING: start: 0x%08x infstart: 0x%08x infend: 0x%08x\n", - (INT_PTR) got_start, (INT_PTR) gotinf_start, - (INT_PTR) gotinf_end); - - cyglsa_printf ("LSA_TOKEN_INFORMATION_V2: 0x%08x - 0x%08x\n", - (INT_PTR) ptok, (INT_PTR) ptok + size); - - /* User SID */ - cyglsa_printf ("User: (attr: 0x%lx)", ptok->User.User.Attributes); - print_sid (" ", -1, (PISID) ptok->User.User.Sid); - - /* Groups */ - print_groups (ptok->Groups); - - /* Primary Group SID */ - print_sid ("Primary Group: ", -1, (PISID)ptok->PrimaryGroup.PrimaryGroup); - - /* Privileges */ - print_privs (ptok->Privileges); - - /* Owner */ - print_sid ("Owner: ", -1, (PISID) ptok->Owner.Owner); - - /* Default DACL */ - print_dacl (ptok->DefaultDacl.DefaultDacl); - - // CloseHandle (fh); -} - -NTSTATUS NTAPI -LsaApInitializePackage (ULONG authp_id, PLSA_SECPKG_FUNCS dpt, - PLSA_STRING dummy1, PLSA_STRING dummy2, - PLSA_STRING *authp_name) -{ - PLSA_STRING name = NULL; - DWORD vers, major, minor; - - /* Set global pointer to lsa helper function table. */ - funcs = dpt; - - /* Allocate and set the name of the authentication package. This is the - name which has to be used in LsaLookupAuthenticationPackage. */ - if (!(name = funcs->AllocateLsaHeap (sizeof *name))) - return STATUS_NO_MEMORY; - if (!(name->Buffer = funcs->AllocateLsaHeap (sizeof (CYG_LSA_PKGNAME)))) - { - funcs->FreeLsaHeap (name); - return STATUS_NO_MEMORY; - } - name->Length = sizeof (CYG_LSA_PKGNAME) - 1; - name->MaximumLength = sizeof (CYG_LSA_PKGNAME); - strcpy (name->Buffer, CYG_LSA_PKGNAME); - (*authp_name) = name; - - vers = GetVersion (); - major = LOBYTE (LOWORD (vers)); - minor = HIBYTE (LOWORD (vers)); - /* Check if we're running on Windows 2000 or lower. If so, we must create - the logon sid in the group list by ourselves. */ - if (major < 5 || (major == 5 && minor == 0)) - must_create_logon_sid = TRUE; - -#ifdef DEBUGGING - fh = CreateFile ("C:\\cyglsa.dbgout", GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, - NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - cyglsa_printf ("Initialized\n"); -#endif /* DEBUGGING */ - - return STATUS_SUCCESS; -} - -NTSTATUS NTAPI -LsaApLogonUserEx (PLSA_CLIENT_REQUEST request, SECURITY_LOGON_TYPE logon_type, - PVOID auth, PVOID client_auth_base, ULONG auth_len, - PVOID *pbuf, PULONG pbuf_len, PLUID logon_id, - PNTSTATUS sub_stat, PLSA_TOKEN_INFORMATION_TYPE tok_type, - PVOID *tok, PUNICODE_STRING *account, - PUNICODE_STRING *authority, PUNICODE_STRING *machine) -{ - DWORD checksum, i; - PDWORD csp, csp_end; - NTSTATUS stat; - SECPKG_CLIENT_INFO clinf; - PLSA_TOKEN_INFORMATION_V2 tokinf; - - cyglsa_t *authinf = (cyglsa_t *) auth; - - /* Check if the caller has the SeTcbPrivilege, otherwise refuse service. */ - stat = funcs->GetClientInfo (&clinf); - if (stat != STATUS_SUCCESS) - { - cyglsa_printf ("GetClientInfo failed: 0x%08lx\n", stat); - return stat; - } - if (!clinf.HasTcbPrivilege) - { - cyglsa_printf ("Client has no TCB privilege. Access denied.\n"); - return STATUS_ACCESS_DENIED; - } - - /* Make a couple of validity checks. */ - if (auth_len < sizeof *authinf - || authinf->magic != CYG_LSA_MAGIC - || !authinf->username[0] - || !authinf->domain[0]) - { - cyglsa_printf ("Invalid authentication parameter.\n"); - return STATUS_INVALID_PARAMETER; - } - checksum = CYG_LSA_MAGIC; - csp = (PDWORD) &authinf->username; - csp_end = (PDWORD) ((PBYTE) authinf + auth_len); - while (csp < csp_end) - checksum += *csp++; - if (authinf->checksum != checksum) - { - cyglsa_printf ("Invalid checksum.\n"); - return STATUS_INVALID_PARAMETER_3; - } - - /* Set account to username and authority to domain resp. machine name. - The name of the logon account name as returned by LookupAccountSid - is created from here as "authority\account". */ - authinf->username[UNLEN] = '\0'; - authinf->domain[MAX_DOMAIN_NAME_LEN] = '\0'; - if (account && !(*account = uni_alloc (authinf->username, - wcslen (authinf->username)))) - { - cyglsa_printf ("No memory trying to create account.\n"); - return STATUS_NO_MEMORY; - } - if (authority && !(*authority = uni_alloc (authinf->domain, - wcslen (authinf->domain)))) - { - cyglsa_printf ("No memory trying to create authority.\n"); - return STATUS_NO_MEMORY; - } - if (machine) - { - WCHAR mach[MAX_COMPUTERNAME_LENGTH + 1]; - DWORD msize = MAX_COMPUTERNAME_LENGTH + 1; - if (!GetComputerNameW (mach, &msize)) - wcscpy (mach, L"UNKNOWN"); - if (!(*machine = uni_alloc (mach, wcslen (mach)))) - { - cyglsa_printf ("No memory trying to create machine.\n"); - return STATUS_NO_MEMORY; - } - } - /* Create a fake buffer in pbuf which is free'd again in the client. - Windows 2000 tends to crash when setting this pointer to NULL. */ - if (pbuf) - { -#ifdef JUST_ANOTHER_NONWORKING_SOLUTION - cygprf_t prf; - WCHAR sam_username[MAX_DOMAIN_NAME_LEN + UNLEN + 2]; - SECURITY_STRING sam_user, prefix; - PUCHAR user_auth; - ULONG user_auth_size; - WCHAR flatname[UNLEN + 1]; - UNICODE_STRING flatnm; - TOKEN_SOURCE ts; - HANDLE token; -#endif /* JUST_ANOTHER_NONWORKING_SOLUTION */ - - stat = funcs->AllocateClientBuffer (request, 64UL, pbuf); - if (!LSA_SUCCESS (stat)) - { - cyglsa_printf ("AllocateClientBuffer failed: 0x%08lx\n", stat); - return stat; - } -#ifdef JUST_ANOTHER_NONWORKING_SOLUTION - prf.magic_pre = MAGIC_PRE; - prf.token = NULL; - prf.magic_post = MAGIC_POST; - -#if 0 - /* That's how it was supposed to work according to MSDN... */ - wcscpy (sam_username, authinf->domain); - wcscat (sam_username, L"\\"); - wcscat (sam_username, authinf->username); -#else - /* That's the only solution which worked, and then it only worked - for machine local accounts. No domain authentication possible. - STATUS_NO_SUCH_USER galore! */ - wcscpy (sam_username, authinf->username); -#endif - RtlInitUnicodeString (&sam_user, sam_username); - RtlInitUnicodeString (&prefix, L""); - RtlInitEmptyUnicodeString (&flatnm, flatname, - (UNLEN + 1) * sizeof (WCHAR)); - - stat = funcs->GetAuthDataForUser (&sam_user, SecNameSamCompatible, - NULL, &user_auth, - &user_auth_size, &flatnm); - if (!NT_SUCCESS (stat)) - { - char sam_u[MAX_DOMAIN_NAME_LEN + UNLEN + 2]; - wcstombs (sam_u, sam_user.Buffer, sizeof (sam_u)); - cyglsa_printf ("GetAuthDataForUser (%u,%u,%s) failed: 0x%08lx\n", - sam_user.Length, sam_user.MaximumLength, sam_u, stat); - return stat; - } - - memcpy (ts.SourceName, "Cygwin.1", 8); - ts.SourceIdentifier.HighPart = 0; - ts.SourceIdentifier.LowPart = 0x0104; - RtlInitEmptyUnicodeString (&flatnm, flatname, - (UNLEN + 1) * sizeof (WCHAR)); - stat = funcs->ConvertAuthDataToToken (user_auth, user_auth_size, - SecurityDelegation, &ts, - Interactive, *authority, - &token, logon_id, &flatnm, - sub_stat); - if (!NT_SUCCESS (stat)) - { - cyglsa_printf ("ConvertAuthDataToToken failed: 0x%08lx\n", stat); - return stat; - } - - stat = funcs->DuplicateHandle (token, &prf.token); - if (!NT_SUCCESS (stat)) - { - cyglsa_printf ("DuplicateHandle failed: 0x%08lx\n", stat); - return stat; - } - - stat = funcs->CopyToClientBuffer (request, sizeof prf, *pbuf, &prf); - if (!NT_SUCCESS (stat)) - { - cyglsa_printf ("CopyToClientBuffer failed: 0x%08lx\n", stat); - return stat; - } - funcs->FreeLsaHeap (user_auth); -#endif /* JUST_ANOTHER_NONWORKING_SOLUTION */ - } - if (pbuf_len) - *pbuf_len = 64UL; - - /* A PLSA_TOKEN_INFORMATION_V2 is allocated in one piece, so... */ -#if defined (__x86_64__) || defined (_M_AMD64) - { - /* ...on 64 bit systems we have to convert the incoming 32 bit offsets - into 64 bit pointers. That requires to re-evaluate the size of the - outgoing tokinf structure and a somewhat awkward procedure to copy - the information over. */ - LONG_PTR base; - PBYTE tptr; - DWORD size, newsize; - PSID src_sid; - PCYG_TOKEN_GROUPS src_grps; - PTOKEN_GROUPS grps; - PTOKEN_PRIVILEGES src_privs; - PACL src_acl; - - base = (LONG_PTR) &authinf->inf; - - newsize = authinf->inf_size; - newsize += sizeof (TOKEN_USER) - sizeof (CYG_TOKEN_USER); /* User SID */ - newsize += sizeof (PTOKEN_GROUPS) - sizeof (OFFSET); /* Groups */ - src_grps = (PCYG_TOKEN_GROUPS) (base + authinf->inf.Groups); - newsize += src_grps->GroupCount /* Group SIDs */ - * (sizeof (SID_AND_ATTRIBUTES) - - sizeof (CYG_SID_AND_ATTRIBUTES)); - newsize += sizeof (PSID) - sizeof (OFFSET); /* Primary Group SID */ - newsize += sizeof (PTOKEN_PRIVILEGES) - sizeof (OFFSET); /* Privileges */ - newsize += 0; /* Owner SID */ - newsize += sizeof (PACL) - sizeof (OFFSET); /* Default DACL */ - - if (!(tokinf = funcs->AllocateLsaHeap (newsize))) - return STATUS_NO_MEMORY; - tptr = (PBYTE)(tokinf + 1); - - tokinf->ExpirationTime = authinf->inf.ExpirationTime; - /* User SID */ - src_sid = (PSID) (base + authinf->inf.User.User.Sid); - size = GetLengthSid (src_sid); - CopySid (size, (PSID) tptr, src_sid); - tokinf->User.User.Sid = (PSID) tptr; - tptr += size; - tokinf->User.User.Attributes = authinf->inf.User.User.Attributes; - /* Groups */ - grps = (PTOKEN_GROUPS) tptr; - tokinf->Groups = grps; - grps->GroupCount = src_grps->GroupCount; - tptr += sizeof grps->GroupCount - + grps->GroupCount * sizeof (SID_AND_ATTRIBUTES); - /* Group SIDs */ - for (i = 0; i < src_grps->GroupCount; ++i) - { - src_sid = (PSID) (base + src_grps->Groups[i].Sid); - size = GetLengthSid (src_sid); - CopySid (size, (PSID) tptr, src_sid); - tokinf->Groups->Groups[i].Sid = (PSID) tptr; - tptr += size; - tokinf->Groups->Groups[i].Attributes = src_grps->Groups[i].Attributes; - } - /* Primary Group SID */ - src_sid = (PSID) (base + authinf->inf.PrimaryGroup.PrimaryGroup); - size = GetLengthSid (src_sid); - CopySid (size, (PSID) tptr, src_sid); - tokinf->PrimaryGroup.PrimaryGroup = (PSID) tptr; - tptr += size; - /* Privileges */ - src_privs = (PTOKEN_PRIVILEGES) (base + authinf->inf.Privileges); - size = sizeof src_privs->PrivilegeCount - + src_privs->PrivilegeCount * sizeof (LUID_AND_ATTRIBUTES); - memcpy (tptr, src_privs, size); - tokinf->Privileges = (PTOKEN_PRIVILEGES) tptr; - tptr += size; - /* Owner */ - tokinf->Owner.Owner = NULL; - /* Default DACL */ - src_acl = (PACL) (base + authinf->inf.DefaultDacl.DefaultDacl); - size = src_acl->AclSize; - memcpy (tptr, src_acl, size); - tokinf->DefaultDacl.DefaultDacl = (PACL) tptr; - } -#else - { - /* ...on 32 bit systems we just allocate tokinf with the same size as - we get, copy the whole structure and convert offsets into pointers. */ - - /* Allocate LUID for usage in the logon SID on Windows 2000. This is - not done in the 64 bit code above for hopefully obvious reasons... */ - LUID logon_sid_id; - - if (must_create_logon_sid && !AllocateLocallyUniqueId (&logon_sid_id)) - return STATUS_INSUFFICIENT_RESOURCES; - - if (!(tokinf = funcs->AllocateLsaHeap (authinf->inf_size))) - return STATUS_NO_MEMORY; - memcpy (tokinf, &authinf->inf, authinf->inf_size); - - /* User SID */ - tokinf->User.User.Sid = (PSID) - ((PBYTE) tokinf + (LONG_PTR) tokinf->User.User.Sid); - /* Groups */ - tokinf->Groups = (PTOKEN_GROUPS) - ((PBYTE) tokinf + (LONG_PTR) tokinf->Groups); - /* Group SIDs */ - for (i = 0; i < tokinf->Groups->GroupCount; ++i) - { - tokinf->Groups->Groups[i].Sid = (PSID) - ((PBYTE) tokinf + (LONG_PTR) tokinf->Groups->Groups[i].Sid); - if (must_create_logon_sid - && tokinf->Groups->Groups[i].Attributes & SE_GROUP_LOGON_ID - && *GetSidSubAuthorityCount (tokinf->Groups->Groups[i].Sid) == 3 - && *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 0) - == SECURITY_LOGON_IDS_RID) - { - *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 1) - = logon_sid_id.HighPart; - *GetSidSubAuthority (tokinf->Groups->Groups[i].Sid, 2) - = logon_sid_id.LowPart; - } - } - - /* Primary Group SID */ - tokinf->PrimaryGroup.PrimaryGroup = (PSID) - ((PBYTE) tokinf + (LONG_PTR) tokinf->PrimaryGroup.PrimaryGroup); - /* Privileges */ - tokinf->Privileges = (PTOKEN_PRIVILEGES) - ((PBYTE) tokinf + (LONG_PTR) tokinf->Privileges); - /* Owner SID */ - tokinf->Owner.Owner = NULL; - /* Default DACL */ - tokinf->DefaultDacl.DefaultDacl = (PACL) - ((PBYTE) tokinf + (LONG_PTR) tokinf->DefaultDacl.DefaultDacl); - - } -#endif - - *tok = (PVOID) tokinf; - *tok_type = LsaTokenInformationV2; - - print_tokinf (tokinf, authinf->inf_size, authinf, &authinf->inf, - (PVOID)((LONG_PTR) &authinf->inf + authinf->inf_size)); - - /* Create logon session. */ - if (!AllocateLocallyUniqueId (logon_id)) - { - funcs->FreeLsaHeap (*tok); - *tok = NULL; - cyglsa_printf ("AllocateLocallyUniqueId failed: Win32 error %lu\n", - GetLastError ()); - return STATUS_INSUFFICIENT_RESOURCES; - } - stat = funcs->CreateLogonSession (logon_id); - if (stat != STATUS_SUCCESS) - { - funcs->FreeLsaHeap (*tok); - *tok = NULL; - cyglsa_printf ("CreateLogonSession failed: 0x%08lx\n", stat); - return stat; - } - - cyglsa_printf ("BINGO!!!\n", stat); - return STATUS_SUCCESS; -} - -VOID NTAPI -LsaApLogonTerminated(PLUID LogonId) -{ -} - -NTSTATUS NTAPI -LsaApCallPackage (PLSA_CLIENT_REQUEST request, PVOID authinf, - PVOID client_auth_base, ULONG auth_len, PVOID *ret_buf, - PULONG ret_buf_len, PNTSTATUS ret_stat) -{ - return STATUS_NOT_IMPLEMENTED; -} |