#ifdef VDATA_GROUPNAME_SUPPORTED
char* gszGroupName;
-#endif // VDATA_GROUPNAME_SUPPORTED
+#endif /* VDATA_GROUPNAME_SUPPORTED */
/**
* __VCardGetName() compares the string and vCard type, parameter name.
*
- * @param szString Name which will compare
+ * @param szString Name which will compare
* @param pszList[] Name list of vCard type and param
- * @param size Number of total element of list
+ * @param size Number of total element of list
*
- * @return index The index in the list
+ * @return index The index in the list
*/
int
__VCardGetName(char* szString, char* pszList[], int size)
/**
* __VCardGetValue() compares the string and vCard type, parameter value.
*
- * @param szString Value which will compare
+ * @param szString Value which will compare
* @param list[] Value list of vCard param
- * @param size Number of total element of list
+ * @param size Number of total element of list
*
- * @return flag The value's flag.
+ * @return flag The value's flag.
*/
int
__VCardGetValue(char* szString, const ValueObj list[], int size)
for (i = 0; i < size-1; i++) {
VDATA_TRACE(" i : %d", i);
- VDATA_TRACE(" for loop %d < %d, list[%d] : %p, list[%d].szName : %p", i, size, i, list[i], i, list[i].szName);
+ VDATA_TRACE(" for loop %d < %d, list[%d] : %d, list[%d].szName : %p", i, size, i, list[i].flag, i, list[i].szName);
VDATA_TRACE(" i : %d", i);
if (list[i].szName != NULL) {
VDATA_TRACE(" list[%d].szName != NULL", i);
* __VCardGetTypeName() fine the type name and returns the index number
*
* @param pVCardRaw The raw data
- * @param pStatus Decoder status
+ * @param pStatus Decoder status
* @param pDLen retrived length
*
- * @return res The index in type list
+ * @return res The index in type list
*/
int
__VCardGetTypeName(char* pVCardRaw, int* pStatus, int* pDLen)
#ifdef VDATA_GROUPNAME_SUPPORTED
char* szGroupName = NULL;
-#endif // VDATA_GROUPNAME_SUPPORTED
+#endif /* VDATA_GROUPNAME_SUPPORTED */
SysRequireEx(pVCardRaw, UNKNOWN_NAME);
* __VCardGetParamName() fine the param name and returns the index number
*
* @param pVCardRaw The raw data
- * @param pStatus Decoder status
+ * @param pStatus Decoder status
* @param pDLen retrived length
*
- * @return res The index in type list
+ * @return res The index in type list
*/
int
__VCardGetParamName(char* pVCardRaw, int* pStatus, int* pDLen)
TRIM(name);
UPPER(name, i, index);
res = __VCardGetName(name, (char**)pszCardParamList, VCARD_PARAM_NUM);
- if (res == UNKNOWN_NAME) {
+ if (res == UNKNOWN_NAME)
(*pDLen) = 0;
- }
+
*pStatus = VCARD_PARAM_VALUE_STATUS;
break;
}
pNextObj = pCurObj->pSibling;
count = pCurObj->valueCount;
- for (i = 0; i < count; i++) {
+ for (i = 0; i < count; i++)
VFREE(pCurObj->pszValue[i]);
- }
#ifdef VDATA_GROUPNAME_SUPPORTED
if (pCurObj->pszGroupName)
while (pCurParam != NULL) {
pNextParam = pCurParam->pNext;
VDATA_TRACE("pNEXT ==> %p", pCurParam->pNext);
- VDATA_TRACE("pPARAM ==> %p", pCurParam->parameter);
- VDATA_TRACE("pVALUE ==> %p", pCurParam->paramValue);
+ VDATA_TRACE("pPARAM ==> %d", pCurParam->parameter);
+ VDATA_TRACE("pVALUE ==> %d", pCurParam->paramValue);
VDATA_TRACE("pCurParam : %p", pCurParam);
VDATA_TRACE("pCurParam->parameter : %d", pCurParam->parameter);
VDATA_TRACE("pCurParam->paramValue : %d", pCurParam->paramValue);
* __VCardGetParamVal() fine the param value and returns value.
*
* @param pVCardRaw The raw data
- * @param pStatus Decoder status
+ * @param pStatus Decoder status
* @param pDLen retrived length
*
- * @return buffer The result value
+ * @return buffer The result value
*/
char*
__VCardGetParamVal(char* pVCardRaw, int* pStatus, int* pDLen)
GO_NEXT_CHAR(c, pVCardRaw, pDLen);
len++;
switch (c) {
- case VTYPE_TOKEN_SEMICOLON:
- *pStatus = VCARD_PARAM_NAME_STATUS;
- break;
- case VTYPE_TOKEN_COLON:
- *pStatus = VCARD_TYPE_VALUE_STATUS;
- break;
- case VTYPE_TOKEN_COMMA:
- *pStatus = VCARD_PARAM_VALUE_STATUS;
- break;
+ case VTYPE_TOKEN_SEMICOLON:
+ *pStatus = VCARD_PARAM_NAME_STATUS;
+ break;
+ case VTYPE_TOKEN_COLON:
+ *pStatus = VCARD_TYPE_VALUE_STATUS;
+ break;
+ case VTYPE_TOKEN_COMMA:
+ *pStatus = VCARD_PARAM_VALUE_STATUS;
+ break;
}
if (c == VTYPE_TOKEN_SEMICOLON
|| c == VTYPE_TOKEN_COLON
/**
* __VCardGetTypeVal() fine the type value and returns value.
*
- * @param pVCardRaw The raw data
+ * @param pVCardRaw The raw data
* @param status Decoder status
- * @return buffer The result value
+ * @return buffer The result value
*/
char*
__VCardGetTypeVal(char* pVCardRaw, int* pStatus, int* pDLen, int enc, VObject* pType)
len++;
}
} else if (__VCardGetTypeName(pVCardRaw, &Status, &Len) != UNKNOWN_NAME) {
- --len;
+ --len;
if ((pBuf = (char *)calloc(1, len)) == NULL) return NULL;
memset(pBuf, 0x00, len);
int param_status = false;
int numberedParam = 0;
int enc = 0;
- //int start_status = 0;
+ /* int start_status = 0; */
char* temp = NULL;
bool vcard_ended = false;
VDATA_TRACE("length of pCardRaw = %d", len);
pCardRaw = _VUnfoldingNoSpecNew(pCardRaw);
- if (pCardRaw == NULL) {
+ if (pCardRaw == NULL)
return NULL;
- }
+
pCardRawTmp = pCardRaw;
len = _VManySpace2Space(pCardRaw);
break;
switch (status) {
- case VCARD_TYPE_NAME_STATUS:
+ case VCARD_TYPE_NAME_STATUS:
+ dLen = 0;
+ type = __VCardGetTypeName(pCardRaw, &status, &dLen);
+ pCardRaw += dLen;
+
+ if (type == -1)
+ break;
+
+ switch (type) {
+ case VCARD_TYPE_BEGIN:
+ if (pVCard) {
+ free(pVCard);
+ pVCard = NULL;
+ }
+
+ if ((pVCard = (VTree*)calloc(1, sizeof(VTree))) == NULL) {
+ /* start_status = 1; */
+ goto CATCH;
+ }
+
+ memset(pVCard, 0x00, sizeof(VTree));
+
dLen = 0;
- type = __VCardGetTypeName(pCardRaw, &status, &dLen);
+ szCardBegin = __VCardGetTypeVal(pCardRaw, &status, &dLen, enc, NULL);
pCardRaw += dLen;
+ VFREE(szCardBegin);
+
+ pVCard->treeType = VCARD;
+ pVCard->pTop = NULL;
+ pVCard->pCur = NULL;
+ pVCard->pNext = NULL;
+ break;
+
+ case VCARD_TYPE_END:
+ enc = 0;
+ if (strstr(pCardRaw, "VCARD") != NULL) {
+ pCardRaw += dLen;
+ done = true;
+ vcard_ended = true;
+ } else {
+ status = VCARD_TYPE_NAME_STATUS;
+ pCardRaw += dLen;
+ /*VFREE(etemp); */
+ }
+ break;
+
+ case UNKNOWN_NAME:
+ break;
- if (type == -1)
+ default:
+ if (UNKNOWN_NAME == type || type < 0) {
+ status = VCARD_TYPE_NAME_STATUS;
break;
+ }
+
+ if ((pTemp = (VObject*)calloc(1, sizeof(VObject))) == NULL)
+ goto CATCH;
+
+ memset(pTemp, 0, sizeof(VObject));
+ pTemp->property = type;
- switch (type) {
- case VCARD_TYPE_BEGIN:
- if (pVCard) {
- free(pVCard);
- pVCard = NULL;
- }
-
- if ((pVCard = (VTree*)calloc(1, sizeof(VTree))) == NULL) {
- //start_status = 1;
- goto CATCH;
- }
-
- memset(pVCard, 0x00, sizeof(VTree));
-
- dLen = 0;
- szCardBegin = __VCardGetTypeVal(pCardRaw, &status, &dLen, enc, NULL);
- pCardRaw += dLen;
- VFREE(szCardBegin);
-
- pVCard->treeType = VCARD;
- pVCard->pTop = NULL;
- pVCard->pCur = NULL;
- pVCard->pNext = NULL;
- break;
-
- case VCARD_TYPE_END:
- enc = 0;
- if (strstr(pCardRaw, "VCARD") != NULL) {
- pCardRaw += dLen;
- done = true;
- vcard_ended = true;
- } else {
- status = VCARD_TYPE_NAME_STATUS;
- pCardRaw += dLen;
- /*VFREE(etemp); */
- }
- break;
-
- case UNKNOWN_NAME:
- break;
-
- default:
- if (UNKNOWN_NAME == type || type < 0) {
- status = VCARD_TYPE_NAME_STATUS;
- break;
- }
-
- if ((pTemp = (VObject*)calloc(1, sizeof(VObject))) == NULL) {
- goto CATCH;
- }
-
- memset(pTemp, 0, sizeof(VObject));
- pTemp->property = type;
-
- if (pVCard->pTop == NULL) {
- pVCard->pTop = pTemp;
- pVCard->pCur = pTemp;
- } else {
- pVCard->pCur->pSibling = pTemp;
- pVCard->pCur = pTemp;
- }
-
- break;
+ if (pVCard == NULL)
+ goto CATCH;
+
+ if (pVCard->pTop == NULL) {
+ pVCard->pTop = pTemp;
+ pVCard->pCur = pTemp;
+ } else {
+ pVCard->pCur->pSibling = pTemp;
+ pVCard->pCur = pTemp;
}
- numberedParam = 0;
- param_status = false;
- valueCount = 0;
+ break;
+ }
+
+ numberedParam = 0;
+ param_status = false;
+ valueCount = 0;
#ifdef VDATA_GROUPNAME_SUPPORTED
- if (gszGroupName != NULL)
- pVCard->pCur->pszGroupName = gszGroupName;
+ if (gszGroupName != NULL)
+ pVCard->pCur->pszGroupName = gszGroupName;
#endif
- break;
+ break;
- case VCARD_PARAM_NAME_STATUS:
- {
- dLen = 0;
- param = __VCardGetParamName(pCardRaw, &status, &dLen);
- pCardRaw += dLen;
+ case VCARD_PARAM_NAME_STATUS:
+ {
+ dLen = 0;
+ param = __VCardGetParamName(pCardRaw, &status, &dLen);
+ pCardRaw += dLen;
- if (param_status != true) {
+ if (param_status != true) {
- if ((pTmpParam = (VParam*)calloc(1, sizeof(VParam))) == NULL)
- goto CATCH;
+ if ((pTmpParam = (VParam*)calloc(1, sizeof(VParam))) == NULL)
+ goto CATCH;
- param_status = true;
- pVCard->pCur->pParam = pTmpParam;
- memset(pTmpParam, 0x00, sizeof(VParam));
- VDATA_TRACE("pTmpParam : %p", pTmpParam);
- } else {
- if ((pTmpParam->pNext = (VParam*)calloc(1, sizeof(VParam))) == NULL)
- goto CATCH;
+ param_status = true;
+ pVCard->pCur->pParam = pTmpParam;
+ memset(pTmpParam, 0x00, sizeof(VParam));
+ VDATA_TRACE("pTmpParam : %p", pTmpParam);
+ } else {
+ if ((pTmpParam->pNext = (VParam*)calloc(1, sizeof(VParam))) == NULL)
+ goto CATCH;
- pTmpParam = pTmpParam->pNext;
- memset(pTmpParam, 0x00, sizeof(VParam));
- VDATA_TRACE("pTmpParam : %p", pTmpParam);
- }
+ pTmpParam = pTmpParam->pNext;
+ memset(pTmpParam, 0x00, sizeof(VParam));
+ VDATA_TRACE("pTmpParam : %p", pTmpParam);
+ }
- pTmpParam->parameter = param;
+ pTmpParam->parameter = param;
+ break;
+ }
+ case VCARD_PARAM_VALUE_STATUS:
+ dLen = 0;
+ numberedParam = 0;
+ switch (pTmpParam->parameter) {
+ case VCARD_PARAM_TYPE:
+ szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
+ numberedParam |= __VCardGetValue(szValue, pTypeList, VCARD_TYPE_PARAM_NUM);
break;
- }
- case VCARD_PARAM_VALUE_STATUS:
- dLen = 0;
+ case VCARD_PARAM_VALUE:
+ szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
+ numberedParam |= __VCardGetValue(szValue, pValueList, VCARD_VALUE_PARAM_NUM);
+ break;
+ case VCARD_PARAM_ENCODING:
+ szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
+ numberedParam |= __VCardGetValue(szValue, pEncList, VCARD_ENCODE_PARAM_NUM);
+ enc = numberedParam;
+ break;
+ case VCARD_PARAM_CHARSET:
+ szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
+ numberedParam |= __VCardGetValue(szValue, pCharsetList, VCARD_CHARSET_PARAM_NUM);
+ break;
+ case VCARD_PARAM_CONTEXT:
+ case VCARD_PARAM_LANGUAGE:
+ /* prevent 7605 08.03.13 */
+ szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
numberedParam = 0;
- switch (pTmpParam->parameter) {
- case VCARD_PARAM_TYPE:
- szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
- numberedParam |= __VCardGetValue(szValue, pTypeList, VCARD_TYPE_PARAM_NUM);
- break;
- case VCARD_PARAM_VALUE:
- szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
- numberedParam |= __VCardGetValue(szValue, pValueList, VCARD_VALUE_PARAM_NUM);
- break;
- case VCARD_PARAM_ENCODING:
- szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
- numberedParam |= __VCardGetValue(szValue, pEncList, VCARD_ENCODE_PARAM_NUM);
- enc = numberedParam;
- break;
- case VCARD_PARAM_CHARSET:
- szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
- numberedParam |= __VCardGetValue(szValue, pCharsetList, VCARD_CHARSET_PARAM_NUM);
- break;
- case VCARD_PARAM_CONTEXT:
- case VCARD_PARAM_LANGUAGE:
- // prevent 7605 08.03.13
- szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
- numberedParam = 0;
- break;
- default:
- szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
-
- SET_PARAM_VALUE(numberedParam, szValue, pTypeList, VCARD_TYPE_PARAM_NUM, pTmpParam, VCARD_PARAM_TYPE, enc);
- SET_PARAM_VALUE(numberedParam, szValue, pValueList, VCARD_VALUE_PARAM_NUM, pTmpParam, VCARD_PARAM_VALUE, enc);
- SET_PARAM_VALUE(numberedParam, szValue, pEncList, VCARD_ENCODE_PARAM_NUM, pTmpParam, VCARD_PARAM_ENCODING, enc);
- SET_PARAM_VALUE(numberedParam, szValue, pCharsetList, VCARD_CHARSET_PARAM_NUM, pTmpParam, VCARD_PARAM_CHARSET, enc);
-
- numberedParam = 0;
- pCardRaw += dLen;
- dLen = 0;
-
- break;
- }
-
- VDATA_TRACE("%d, %s, %p", numberedParam, szValue, pTmpParam);
- pTmpParam->paramValue = numberedParam;
- pTmpParam->pNext = NULL;
- VFREE(szValue);
- pCardRaw += dLen;
break;
- case VCARD_TYPE_VALUE_STATUS:
- dLen = 0;
- temp = __VCardGetTypeVal(pCardRaw, &status, &dLen, enc, pVCard->pCur);
+ default:
+ szValue = __VCardGetParamVal(pCardRaw, &status, &dLen);
- if (valueCount <= VDATA_VALUE_COUNT_MAX) {
- pVCard->pCur->pszValue[valueCount] = temp;
- valueCount++;
- pVCard->pCur->valueCount = valueCount;
- } else
- VFREE(temp);
+ SET_PARAM_VALUE(numberedParam, szValue, pTypeList, VCARD_TYPE_PARAM_NUM, pTmpParam, VCARD_PARAM_TYPE, enc);
+ SET_PARAM_VALUE(numberedParam, szValue, pValueList, VCARD_VALUE_PARAM_NUM, pTmpParam, VCARD_PARAM_VALUE, enc);
+ SET_PARAM_VALUE(numberedParam, szValue, pEncList, VCARD_ENCODE_PARAM_NUM, pTmpParam, VCARD_PARAM_ENCODING, enc);
+ SET_PARAM_VALUE(numberedParam, szValue, pCharsetList, VCARD_CHARSET_PARAM_NUM, pTmpParam, VCARD_PARAM_CHARSET, enc);
+ numberedParam = 0;
pCardRaw += dLen;
+ dLen = 0;
+
break;
+ }
+
+ VDATA_TRACE("%d, %s, %p", numberedParam, szValue, pTmpParam);
+ pTmpParam->paramValue = numberedParam;
+ pTmpParam->pNext = NULL;
+ VFREE(szValue);
+ pCardRaw += dLen;
+ break;
+ case VCARD_TYPE_VALUE_STATUS:
+ dLen = 0;
+ temp = __VCardGetTypeVal(pCardRaw, &status, &dLen, enc, pVCard->pCur);
+
+ if (valueCount < VDATA_VALUE_COUNT_MAX) {
+ pVCard->pCur->pszValue[valueCount] = temp;
+ valueCount++;
+ pVCard->pCur->valueCount = valueCount;
+ } else
+ VFREE(temp);
+
+ pCardRaw += dLen;
+ break;
}
}
VFREE(pCardRawTmp);
- if (pVCard->pTop == NULL)
+ if (pVCard == NULL || pVCard->pTop == NULL)
goto CATCH;
- if (!vcard_ended) {
+ if (!vcard_ended)
goto CATCH1;
- }
+
VDATA_TRACE_END
return pVCard;
{
VDATA_TRACE_BEGINE
char* pVCardRes = NULL;
+ char* pTempVCard = NULL;
VObject * pTmpObj = NULL;
char* pTemp = NULL;
int len;
int total = 0;
- int cnt = 0;
- int lenTypeList = 0;
+ int cnt = 0;
+ int lenTypeList = 0;
LENGTH_TYPE_LIST(pszCardTypeList, lenTypeList);
SysRequireEx(pVCardRaw->treeType == VCARD, NULL);
SysRequireEx(pVCardRaw->pTop->valueCount > 0, NULL);
- //VDATA_TRACE("START %d %d", pVCardRaw->pTop->property, lenTypeList);
+ /* VDATA_TRACE("START %d %d", pVCardRaw->pTop->property, lenTypeList); */
for (; cnt < pVCardRaw->pTop->valueCount; cnt++) {
if ((pTemp = __VCardTypeEncode(pTmpObj, pszCardTypeList[pTmpObj->property])) != NULL) {
len = strlen(pTemp);
total += len + sizeof(char) * 10;
- if ((pVCardRes = (char*)realloc(pVCardRes, total)) == NULL) {
+ if ((pTempVCard = (char*)realloc(pVCardRes, total)) == NULL) {
VDATA_TRACE("vcard_encode():realloc failed\n");
VFREE(pTemp);
pTemp = NULL;
+ VFREE(pVCardRes);
VDATA_TRACE_END
return NULL;
}
+ pVCardRes = pTempVCard;
if (strncmp(pTemp, "VERSION", strlen("VERSION")) != 0)
g_strlcat(pVCardRes, pTemp, total - strlen(pVCardRes));
}
total += sizeof(char) * 12;
- if ((pVCardRes = (char *)realloc(pVCardRes, total)) == NULL) {
+ if ((pTempVCard = (char *)realloc(pVCardRes, total)) == NULL) {
VDATA_TRACE("vcard_encode:realloc failed\n");
+ VFREE(pVCardRes);
VDATA_TRACE_END
return NULL;
}
+ pVCardRes = pTempVCard;
g_strlcat(pVCardRes, "END:VCARD\r\n", total - strlen(pVCardRes));
VDATA_TRACE_END
return pVCardRes;
char *pszVcardBegin = "BEGIN:VCARD";
switch (mode) {
- case CHECK_START:
- for (i = 0; i < 11; i++)
- if (*pszVcardBegin++ != *pCardRaw++)
- rtnValue = false;
- break;
-
- default:
- rtnValue = false;
+ case CHECK_START:
+ for (i = 0; i < 11; i++)
+ if (*pszVcardBegin++ != *pCardRaw++)
+ rtnValue = false;
+ break;
+
+ default:
+ rtnValue = false;
}
VDATA_TRACE_END
return rtnValue;
int len;
char* pTemp = NULL;
char* szTypeValue = NULL;
+ char* szTemp = NULL;
int i;
int enc = 0;
char* pEncode = NULL;
biLen = pTypeObj->numOfBiData;
#ifdef VDATA_GROUPNAME_SUPPORTED
- if (pTypeObj->pszGroupName != NULL) {
+ if (pTypeObj->pszGroupName != NULL)
len += strlen(pTypeObj->pszGroupName) + 1;
- }
-#endif // VDATA_GROUPNAME_SUPPORTED
+#endif /* VDATA_GROUPNAME_SUPPORTED */
+
if ((szTypeValue = (char *)calloc(1, total += (len+1))) == NULL) {
VDATA_TRACE("__VCardTypeEncode():calloc failed\n");
VDATA_TRACE_END
g_strlcat(szTypeValue, pTypeObj->pszGroupName, total - strlen(szTypeValue));
g_strlcat(szTypeValue, ".", total - strlen(szTypeValue));
}
-#endif // VDATA_GROUPNAME_SUPPORTED
+#endif /* VDATA_GROUPNAME_SUPPORTED */
g_strlcat(szTypeValue, pType, total - strlen(szTypeValue));
pTemp = __VCardParamEncode(pTypeObj, &enc);
if (pTemp != NULL) {
len = strlen(pTemp);
- if ((szTypeValue = (char *)realloc(szTypeValue, (total += len))) == NULL) {
+ if ((szTemp = (char *)realloc(szTypeValue, (total += len))) == NULL) {
VDATA_TRACE("__VCardTypeEncode():realloc failed\n");
VFREE(pTemp);
- pTemp = NULL
- VDATA_TRACE_END;
+ pTemp = NULL;
+ VFREE(szTypeValue);
+ VDATA_TRACE_END
return NULL;
+ } else {
+ szTypeValue = szTemp;
}
g_strlcat(szTypeValue, pTemp, total - strlen(szTypeValue));
VFREE(pTemp);
pTemp = NULL;
}
- if ((szTypeValue = (char *)realloc(szTypeValue, (total += 2))) == NULL) {
+ if ((szTemp = (char *)realloc(szTypeValue, (total += 2))) == NULL) {
+ VFREE(szTypeValue);
VDATA_TRACE_END
return NULL;
+ } else {
+ szTypeValue = szTemp;
}
g_strlcat(szTypeValue, ":", total - strlen(szTypeValue));
if (pTypeObj->pszValue[i] != NULL)
len += strlen(pTypeObj->pszValue[i]);
- }
+ }
} else {
len += biLen;
}
}
}
- if ((pRes = (char *)realloc(pRes, strlen(pRes) + 3)) == NULL) {
+ if ((szTemp = (char *)realloc(pRes, strlen(pRes) + 3)) == NULL) {
VFREE(pEncode);
VFREE(szTypeValue);
+ VFREE(pRes);
VDATA_TRACE_END
return NULL;
+ } else {
+ pRes = szTemp;
}
g_strlcat(pRes, "\r\n", 2);
len = strlen(pRes);
- if ((szTypeValue = (char *)realloc(szTypeValue, (total += (len+3)))) == NULL) {
+ if ((szTemp = (char *)realloc(szTypeValue, (total += (len+3)))) == NULL) {
VFREE(pEncode);
VFREE(pRes);
+ VFREE(szTypeValue);
VDATA_TRACE_END
return NULL;
+ } else {
+ szTypeValue = szTemp;
}
g_strlcat(szTypeValue, pRes, total - strlen(szTypeValue));
int shift = 0;
bool bSupported;
char* szParam = NULL;
+ char* szTemp = NULL;
VParam* pTemp = NULL;
ValueObj* pList = NULL;
bSupported = false;
/** Expand szParam string. For appending.*/
- if ((szParam = (char *)realloc(szParam, len += 15)) == NULL) {
+ if ((szTemp = (char *)realloc(szParam, len += 15)) == NULL) {
+ VFREE(szParam);
VDATA_TRACE_END
return NULL;
+ } else {
+ szParam = szTemp;
}
/** appending paramter name. */
/** Set Parameter Value name. */
switch (pTemp->parameter) {
- case VCARD_PARAM_ENCODING:
- *pEnc = pTemp->paramValue;
- shift = VCARD_ENCODE_PARAM_NUM;
- pList = pEncList; bSupported = true;
- break;
- case VCARD_PARAM_TYPE:
- shift = VCARD_TYPE_PARAM_NUM;
- pList = pTypeList; bSupported = true;
- break;
- case VCARD_PARAM_VALUE:
- shift = VCARD_VALUE_PARAM_NUM;
- pList = pValueList; bSupported = true;
- break;
- case VCARD_PARAM_CHARSET:
- shift = VCARD_CHARSET_PARAM_NUM;
- pList = pCharsetList; bSupported = true;
- break;
- default:
- if ((szParam = (char*)realloc(szParam, 5)) == NULL) {
- VDATA_TRACE_END
- return NULL;
- }
- g_strlcat(szParam, "NONE", 5 - strlen(szParam));
+ case VCARD_PARAM_ENCODING:
+ *pEnc = pTemp->paramValue;
+ shift = VCARD_ENCODE_PARAM_NUM;
+ pList = pEncList; bSupported = true;
+ break;
+ case VCARD_PARAM_TYPE:
+ shift = VCARD_TYPE_PARAM_NUM;
+ pList = pTypeList; bSupported = true;
+ break;
+ case VCARD_PARAM_VALUE:
+ shift = VCARD_VALUE_PARAM_NUM;
+ pList = pValueList; bSupported = true;
+ break;
+ case VCARD_PARAM_CHARSET:
+ shift = VCARD_CHARSET_PARAM_NUM;
+ pList = pCharsetList; bSupported = true;
+ break;
+ default:
+ if ((szTemp = (char*)realloc(szParam, 5)) == NULL) {
+ VFREE(szParam);
+ VDATA_TRACE_END
+ return NULL;
+ } else {
+ szParam = szTemp;
+ }
+ g_strlcat(szParam, "NONE", 5 - strlen(szParam));
}
/** exchage parameter value's to string.*/
for (i = 0, sNum = 0x00000001; i < shift; i++) {
if (pTemp->paramValue & sNum) {
- if ((szParam = (char *)realloc(szParam, (len += (strlen(pList[i].szName) + 2)))) == NULL) {
+ if ((szTemp = (char *)realloc(szParam, (len += (strlen(pList[i].szName) + 2)))) == NULL) {
+ VFREE(szParam);
VDATA_TRACE_END
return NULL;
+ } else {
+ szParam = szTemp;
}
g_strlcat(szParam, pList[i].szName, len - strlen(szParam));