profiles
authorStefan Metzmacher <metze@samba.org>
Wed, 6 Mar 2013 10:14:27 +0000 (11:14 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 4 Oct 2016 12:52:17 +0000 (14:52 +0200)
source3/utils/profiles.c

index d128d6d1d674e88d4857b45c42662707a649cdd6..1ef4b43203d81ca7227ecabc996066c636506cb3 100644 (file)
@@ -238,6 +238,9 @@ int main( int argc, const char *argv[] )
 
        poptSetOtherOptionHelp(pc, "<profilefile>");
 
+       ZERO_STRUCT(old_sid);
+       ZERO_STRUCT(new_sid);
+
        /* Now, process the arguments */
 
        while ((opt = poptGetNextOpt(pc)) != -1) {
@@ -270,7 +273,7 @@ int main( int argc, const char *argv[] )
                exit(1);
        }
 
-       if ((!change && new_val) || (change && !new_val)) {
+       if (!change || !new_val) {
                fprintf(stderr, "You must specify both -c and -n if one or the other is set!\n");
                poptPrintUsage(pc, stderr, 0);
                exit(252);
@@ -295,12 +298,18 @@ int main( int argc, const char *argv[] )
        }
 
        ndr_err = ndr_push_struct_blob(&old_blob, frame, &old_sid,
-                       (ndr_push_flags_fn_t) ndr_push_security_descriptor);
+                       (ndr_push_flags_fn_t) ndr_push_dom_sid);
+       SMB_ASSERT(NDR_ERR_CODE_IS_SUCCESS(ndr_err));
+
        ndr_err = ndr_push_struct_blob(&new_blob, frame, &new_sid,
-                       (ndr_push_flags_fn_t) ndr_push_security_descriptor);
+                       (ndr_push_flags_fn_t) ndr_push_dom_sid);
+       SMB_ASSERT(NDR_ERR_CODE_IS_SUCCESS(ndr_err));
 
        if (new_blob.length > old_blob.length) {
-
+               fprintf(stderr, "New SID[%s][%u] is longer than old SID[%s][%u]]\n",
+                       sid_string_dbg(&new_sid), (unsigned)new_blob.length,
+                       sid_string_dbg(&old_sid), (unsigned)old_blob.length);
+               exit (1);
        }
 
        if (new_blob.length < old_blob.length) {