Преглед изворни кода

The open flags are used before they are verified to be valid.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1122 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake пре 19 година
родитељ
комит
5a45b27fdc
1 измењених фајлова са 4 додато и 4 уклоњено
  1. 4 4
      lib/ckpt.c

+ 4 - 4
lib/ckpt.c

@@ -571,6 +571,10 @@ saCkptCheckpointOpen (
 		return (SA_AIS_ERR_INVALID_PARAM);
 	}
 
+	if (checkpointOpenFlags & ~(SA_CKPT_CHECKPOINT_READ|SA_CKPT_CHECKPOINT_WRITE|SA_CKPT_CHECKPOINT_CREATE)) {
+		return (SA_AIS_ERR_BAD_FLAGS);
+	}
+
 	if ((checkpointOpenFlags & SA_CKPT_CHECKPOINT_CREATE) && 
 		checkpointCreationAttributes == NULL) {
 
@@ -590,10 +594,6 @@ saCkptCheckpointOpen (
 		return (SA_AIS_ERR_INVALID_PARAM);
 	}
 
-	if (checkpointOpenFlags & ~(SA_CKPT_CHECKPOINT_READ|SA_CKPT_CHECKPOINT_WRITE|SA_CKPT_CHECKPOINT_CREATE)) {
-		return (SA_AIS_ERR_BAD_FLAGS);
-	}
-
 	error = saHandleInstanceGet (&ckptHandleDatabase, ckptHandle,
 		(void *)&ckptInstance);
 	if (error != SA_AIS_OK) {