Author: fireball
Date: Tue Dec 11 19:21:13 2007
New Revision: 31150
URL: http://svn.reactos.org/svn/reactos?rev=31150&view=rev
Log:
- Fix a bug in CmpCreateLinkNode when the link node alredy exists.
- Add some checks in CmpDoOpen to protect against illegal opens.
- Handle symlinks instead of ignoring them (fixes CurrentControlSet problem).
- Set disposition if this is an open due to a create.
Modified:
trunk/reactos/ntoskrnl/config/cmparse.c
Modified: trunk/reactos/ntoskrnl/config/cmparse.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmparse.c?…
==============================================================================
--- trunk/reactos/ntoskrnl/config/cmparse.c (original)
+++ trunk/reactos/ntoskrnl/config/cmparse.c Tue Dec 11 19:21:13 2007
@@ -584,12 +584,55 @@
/* It is, don't touch it */
return STATUS_OBJECT_NAME_NOT_FOUND;
}
-
+
+ /* Check if we have a context */
+ if (Context)
+ {
+ /* Check if this is a link create (which shouldn't be an open) */
+ if (Context->CreateLink)
+ {
+ return STATUS_ACCESS_DENIED;
+ }
+
+ /* Check if this is symlink create attempt */
+ if (Context->CreateOptions & REG_OPTION_CREATE_LINK)
+ {
+ /* Key already exists */
+ return STATUS_OBJECT_NAME_COLLISION;
+ }
+
+ /* Set the disposition */
+ Context->Disposition = REG_OPENED_EXISTING_KEY;
+ }
+
/* Do this in the registry lock */
CmpLockRegistry();
/* If we have a KCB, make sure it's locked */
//ASSERT(CmpIsKcbLockedExclusive(*CachedKcb));
+
+ /* Check if this is a symlink */
+ if ((Node->Flags & KEY_SYM_LINK) && !(Attributes & OBJ_OPENLINK))
+ {
+ /* Create the KCB for the symlink */
+ Kcb = CmpCreateKeyControlBlock(Hive,
+ Cell,
+ Node,
+ *CachedKcb,
+ 0,
+ KeyName);
+ if (!Kcb) return STATUS_INSUFFICIENT_RESOURCES;
+
+ /* Make sure it's also locked, and set the pointer */
+ //ASSERT(CmpIsKcbLockedExclusive(Kcb));
+ *CachedKcb = Kcb;
+
+ /* Release the registry lock */
+ CmpUnlockRegistry();
+
+ /* Return reparse required */
+ return STATUS_REPARSE;
+ }
/* Create the KCB. FIXME: Use lock flag */
Kcb = CmpCreateKeyControlBlock(Hive,
@@ -735,7 +778,7 @@
AccessState,
AccessMode,
CreateOptions,
- Context,
+ NULL,
0,
&Kcb,
&Name,
Author: fireball
Date: Tue Dec 11 18:59:58 2007
New Revision: 31148
URL: http://svn.reactos.org/svn/reactos?rev=31148&view=rev
Log:
- Update copyright information.
- Bump version to 3.0.
Modified:
trunk/reactos/boot/freeldr/freeldr/include/ver.h
Modified: trunk/reactos/boot/freeldr/freeldr/include/ver.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/ver.h (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/ver.h Tue Dec 11 18:59:58 2007
@@ -22,10 +22,10 @@
/* just some stuff */
-#define VERSION "FreeLoader v2.1"
-#define COPYRIGHT "Copyright (C) 1998-2005 Brian Palmer <brianp(a)sginet.com>"
-#define AUTHOR_EMAIL "<brianp(a)sginet.com>"
-#define BY_AUTHOR "by Brian Palmer"
+#define VERSION "FreeLoader v3.0"
+#define COPYRIGHT "Copyright (C) 1998-2007 ReactOS Team"
+#define AUTHOR_EMAIL "<www.reactos.org>"
+#define BY_AUTHOR "by ReactOS Team"
// FreeLoader version defines
//
@@ -34,8 +34,8 @@
// If you add features then you increment the minor version and zero the patch version
// If you add major functionality then you increment the major version and zero the minor & patch versions
//
-#define FREELOADER_MAJOR_VERSION 2
-#define FREELOADER_MINOR_VERSION 1
+#define FREELOADER_MAJOR_VERSION 3
+#define FREELOADER_MINOR_VERSION 0
#define FREELOADER_PATCH_VERSION 0
Author: peterw
Date: Tue Dec 11 18:59:44 2007
New Revision: 31147
URL: http://svn.reactos.org/svn/reactos?rev=31147&view=rev
Log:
- Remove the yes/no verification added in r31142 and fix a couple typos.
Modified:
trunk/tools/RosBE/RosBE-Windows/Root/Clean.cmd
trunk/tools/RosBE/RosBE-Windows/Root/Help.cmd
Modified: trunk/tools/RosBE/RosBE-Windows/Root/Clean.cmd
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Root/Cle…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Root/Clean.cmd (original)
+++ trunk/tools/RosBE/RosBE-Windows/Root/Clean.cmd Tue Dec 11 18:59:44 2007
@@ -9,13 +9,6 @@
::
@echo off
-echo Do you REALLY want to continue?
-set /p YESNO="(yes), (no)"
-if /i "%YESNO%"=="yes" goto :CONT
-if /i "%YESNO%"=="no" goto :EOC
-goto :NOK
-
-:CONT
title Cleaning...
if "%1" == "" (
@@ -38,7 +31,7 @@
:LOG
::
-: Check if we have any logs to clean, if so, clean them.
+:: Check if we have any logs to clean, if so, clean them.
::
if exist "%_ROSBE_LOGDIR%\*.txt" (
echo Cleaning build logs...
@@ -47,15 +40,14 @@
) else (
echo ERROR: There are no logs to clean.
)
-goto :EOC
+goto :EOF
:DEL
::
-: Check if we have something to clean, if so, clean it.
+:: Check if we have something to clean, if so, clean it.
::
if exist "obj-i386\." (
echo Cleaning ReactOS source directory...
-
::
: Remove directories/makefile.auto created by the build.
::
@@ -75,7 +67,7 @@
) else (
echo ERROR: There is no Compiler Output to clean.
)
-goto :EOC
+goto :EOF
:EOC
title ReactOS Build Environment %_ROSBE_VERSION%
Modified: trunk/tools/RosBE/RosBE-Windows/Root/Help.cmd
URL: http://svn.reactos.org/svn/reactos/trunk/tools/RosBE/RosBE-Windows/Root/Hel…
==============================================================================
--- trunk/tools/RosBE/RosBE-Windows/Root/Help.cmd (original)
+++ trunk/tools/RosBE/RosBE-Windows/Root/Help.cmd Tue Dec 11 18:59:44 2007
@@ -113,7 +113,7 @@
echo Usage: clean [logs]
echo Fully clean the ReactOS source directory.
echo.
- echo all - Removes build logs and Compiler Output in the RosBE-Logs directory.
+ echo all - Removes build logs and compiler output in the RosBE-Logs directory.
echo logs - Removes all build logs in the RosBE-Logs directory.
goto :EOC
)