server: Only require REG_OPTION_VOLATILE when creating a new key.
diff --git a/server/registry.c b/server/registry.c
index d83486b..1fa2c67 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -612,11 +612,6 @@
set_error( STATUS_KEY_DELETED );
return NULL;
}
- if (!(flags & KEY_VOLATILE) && (key->flags & KEY_VOLATILE))
- {
- set_error( STATUS_CHILD_MUST_BE_VOLATILE );
- return NULL;
- }
token.str = NULL;
if (!get_path_token( name, &token )) return NULL;
@@ -632,6 +627,11 @@
/* create the remaining part */
if (!token.len) goto done;
+ if (!(flags & KEY_VOLATILE) && (key->flags & KEY_VOLATILE))
+ {
+ set_error( STATUS_CHILD_MUST_BE_VOLATILE );
+ return NULL;
+ }
*created = 1;
if (flags & KEY_DIRTY) make_dirty( key );
if (!(key = alloc_subkey( key, &token, index, modif ))) return NULL;