diff options
Diffstat (limited to 'src/xpath.c')
-rw-r--r-- | src/xpath.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/xpath.c b/src/xpath.c index 8b0cf799..2419f133 100644 --- a/src/xpath.c +++ b/src/xpath.c @@ -605,8 +605,9 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS /* create full XPath expression */ xmlSecAssert2(data->expr != NULL, -1); - tmp = (xmlChar*) xmlMalloc(sizeof(xmlChar) * (xmlStrlen(data->expr) + - strlen(xpathPattern) + 1)); + size_t tmpSize = sizeof(xmlChar) * (xmlStrlen(data->expr) + + strlen(xpathPattern) + 1); + tmp = (xmlChar*) xmlMalloc(tmpSize); if(tmp == NULL) { xmlSecError(XMLSEC_ERRORS_HERE, xmlSecErrorsSafeString(xmlSecTransformGetName(transform)), @@ -616,7 +617,7 @@ xmlSecTransformXPathNodeRead(xmlSecTransformPtr transform, xmlNodePtr node, xmlS (int)(xmlStrlen(data->expr) + strlen(xpathPattern) + 1)); return(-1); } - sprintf((char*)tmp, xpathPattern, (char*)data->expr); + snprintf((char*)tmp, tmpSize, xpathPattern, (char*)data->expr); xmlFree(data->expr); data->expr = tmp; |