mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
memory leak on large imports
This commit is contained in:
@@ -441,6 +441,9 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
|
|||||||
strcpy(featureNameString+namePos, (char *) featureName[i].value);
|
strcpy(featureNameString+namePos, (char *) featureName[i].value);
|
||||||
namePos += lineValueLen;
|
namePos += lineValueLen;
|
||||||
strcpy(featureNameString+(namePos++), "\"");
|
strcpy(featureNameString+(namePos++), "\"");
|
||||||
|
|
||||||
|
xmlFree(featureName[i].type);
|
||||||
|
xmlFree(featureName[i].value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
paramValues[5] = (const char *)featureNameString;
|
paramValues[5] = (const char *)featureNameString;
|
||||||
@@ -471,6 +474,9 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
|
|||||||
strcpy(featureExtraTagString+namePos, (char *) featureExtraTag[i].value);
|
strcpy(featureExtraTagString+namePos, (char *) featureExtraTag[i].value);
|
||||||
namePos += lineValueLen;
|
namePos += lineValueLen;
|
||||||
strcpy(featureExtraTagString+(namePos++), "\"");
|
strcpy(featureExtraTagString+(namePos++), "\"");
|
||||||
|
|
||||||
|
xmlFree(featureExtraTag[i].type);
|
||||||
|
xmlFree(featureExtraTag[i].value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
paramValues[7] = (const char *)featureExtraTagString;
|
paramValues[7] = (const char *)featureExtraTagString;
|
||||||
@@ -537,7 +543,7 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
|
|||||||
PQclear(res);
|
PQclear(res);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
PQclear(res);
|
PQclear(res);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -589,11 +595,11 @@ void EndElement(xmlTextReaderPtr reader, const xmlChar *name)
|
|||||||
xmlFree(feature.value);
|
xmlFree(feature.value);
|
||||||
xmlFree(feature.rankAddress);
|
xmlFree(feature.rankAddress);
|
||||||
xmlFree(feature.rankSearch);
|
xmlFree(feature.rankSearch);
|
||||||
|
if (feature.countryCode) xmlFree(feature.countryCode);
|
||||||
if (feature.parentPlaceID) xmlFree(feature.parentPlaceID);
|
if (feature.parentPlaceID) xmlFree(feature.parentPlaceID);
|
||||||
if (feature.parentType) xmlFree(feature.parentType);
|
if (feature.parentType) xmlFree(feature.parentType);
|
||||||
if (feature.parentID) xmlFree(feature.parentID);
|
if (feature.parentID) xmlFree(feature.parentID);
|
||||||
// if (feature.name) xmlFree(feature.name);
|
// if (feature.name) xmlFree(feature.name);
|
||||||
if (feature.countryCode) xmlFree(feature.countryCode);
|
|
||||||
if (feature.adminLevel) xmlFree(feature.adminLevel);
|
if (feature.adminLevel) xmlFree(feature.adminLevel);
|
||||||
if (feature.houseNumber) xmlFree(feature.houseNumber);
|
if (feature.houseNumber) xmlFree(feature.houseNumber);
|
||||||
if (feature.geometry) xmlFree(feature.geometry);
|
if (feature.geometry) xmlFree(feature.geometry);
|
||||||
|
|||||||
Reference in New Issue
Block a user