Fix infinite loop in FindAndDeleteActionSet function.
So we change the code.
Fix [IOT-282]
Change-Id: I23d3663ea32c5e56a456b013d4c697fcf0f886d2
Signed-off-by: HyunJun Kim <hyunjun2.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/286
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
#include "oicgroup.h"
#include "ocresource.h"
#include "occollection.h"
#include "oicgroup.h"
#include "ocresource.h"
#include "occollection.h"
#define TAG PCF("OICGROUP")
#define TAG PCF("OICGROUP")
OCStackResult FindAndDeleteActionSet(OCResource **resource, const char * actionsetName)
{
OCStackResult FindAndDeleteActionSet(OCResource **resource, const char * actionsetName)
{
OCActionSet *pointer = NULL;
OCActionSet *pDel = NULL;
OCActionSet *pointer = NULL;
OCActionSet *pDel = NULL;
(*resource)->actionsetHead = pointer->next;
else
(*resource)->actionsetHead = NULL;
(*resource)->actionsetHead = pointer->next;
else
(*resource)->actionsetHead = NULL;
DeleteActionSet(&pointer);
DeleteActionSet(&pointer);
}
else if (pointer->next != NULL)
{
}
else if (pointer->next != NULL)
{
DeleteActionSet(&pDel);
}
}
DeleteActionSet(&pDel);
}
}
+ pointer = pointer->next;
//GetActionName(iterToken, &actionsetName);
// printf("%s\n", iterToken, &iterTokenPtr);
//GetActionName(iterToken, &actionsetName);
// printf("%s\n", iterToken, &iterTokenPtr);
- iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr); // it is mean ':'.
+ // it is mean ':'.
+ iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr);
+
// printf("%s\n", iterToken);
// printf("%s\n", iterToken);
- iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr); // it is body of action description.
+ // it is body of action description.
+ iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr);
+
// printf("%s\n", iterToken);
// printf("DESC :: %s\n", iterToken);
// printf("%s\n", iterToken);
// printf("DESC :: %s\n", iterToken);
if (strcmp(iterToken, "uri") == 0)
{
iterToken = (char *) strtok_r(NULL, "=", &iterAttrPtr);
if (strcmp(iterToken, "uri") == 0)
{
iterToken = (char *) strtok_r(NULL, "=", &iterAttrPtr);
- //printf("uri :: %s\n", iterToken);
action->resourceUri = (char *) OCMalloc(strlen(iterToken) + 1);
strncpy(action->resourceUri, iterToken, strlen(iterToken) + 1);
}
action->resourceUri = (char *) OCMalloc(strlen(iterToken) + 1);
strncpy(action->resourceUri, iterToken, strlen(iterToken) + 1);
}
*method = (char *) OCMalloc(strlen(iterToken) + 1);
strncpy(*method, iterToken, strlen(iterToken) + 1);
*method = (char *) OCMalloc(strlen(iterToken) + 1);
strncpy(*method, iterToken, strlen(iterToken) + 1);
- iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr); // it is mean ':'.
+ // it is mean ':'.
+ iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr);
// printf("%s\n", iterToken);
// printf("%s\n", iterToken);
- iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr); // it is body of action description.
+ // it is body of action description.
+ iterToken = (char *) strtok_r(NULL, DESC_DELIMITER, &iterTokenPtr);
// printf("%s\n", iterToken);
description = (char *) OCMalloc(strlen(iterToken) + 1);
// printf("%s\n", iterToken);
description = (char *) OCMalloc(strlen(iterToken) + 1);