rem: fieldValue = ckalloc(valueSize + 1);
add: fieldValue = ckalloc((size_t)(valueSize + 1));
context: Tcl_GetKeyedListField(interp, fieldName, keyedList, fieldValuePtr)    Tcl_Interp     *interp;    CONST char     *fieldName;    CONST char     *keyedList;    char          **fieldValuePtr;{    char           *nameSeparPtr, *scanPtr, *valuePtr;    int             valueSize, result, braced;    if (fieldName == '\0') {        interp->result = "null key not allowed";        return TCL_ERROR;    }    /*     * Skip leading white spaces in list.  This keeps totally empty lists     * with some white-spaces from being confused with empty field entries     * later on in the parsing.     */    for (; *keyedList != '\0'; keyedList++) {        if (ISSPACE(*keyedList) == 0)            break;    }    /*     * Check for sub-names, temporarly delimit the top name with a '\0'.     */    nameSeparPtr = strchr((char *) fieldName, '.');    if (nameSeparPtr != NULL)        *nameSeparPtr = '\0';    /*     * Walk the list looking for a field name that matches.     */    scanPtr = (char *) keyedList;    result = TCL_BREAK;                 /* Assume not found */    while (*scanPtr != '\0') {        char           *fieldPtr;        int             fieldSize;        char            saveChar;        result = TclFindElement(interp, scanPtr, &fieldPtr, &scanPtr,            &fieldSize, NULL);        if (result != TCL_OK)            break;        saveChar = fieldPtr[fieldSize];        fieldPtr[fieldSize] = '\0';        result = CompareKeyListField(interp, (char *) fieldName, fieldPtr,            &valuePtr, &valueSize, &braced);        fieldPtr[fieldSize] = saveChar;        if (result != TCL_BREAK)            break;                      /* Found or an error */    }    if (result != TCL_OK)        goto exitPoint;                 /* Not found or an error */    /*     * If a subfield is requested, recurse to get the value otherwise     * allocate a buffer to hold the value.     */    if (nameSeparPtr != NULL) {        char            saveChar;        saveChar = valuePtr[valueSize];        valuePtr[valueSize] = '\0';        result = Tcl_GetKeyedListField(interp, nameSeparPtr + 1, valuePtr,            fieldValuePtr);        valuePtr[valueSize] = saveChar;    } else {        if (fieldValuePtr != NULL) {            char           *fieldValue;            fieldValue = ckalloc(valueSize + 1);            if (braced) {                strncpy(fieldValue, valuePtr, valueSize);                fieldValue[valueSize] = '\0';            } else {                TclCopyAndCollapse(valueSize, valuePtr, fieldValue);            }            *fieldValuePtr = fieldValue;        }    }exitPoint:    if (nameSeparPtr != NULL)        *nameSeparPtr = '.';    return result;}