mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
util: xml: Remove virXMLPropStringLimit and virXPathStringLimit
The functions have very difficult semantics where callers are not able to tell whether the property is missing or failed the length check. Only the latter produces errors. Since usage of the functions was phased out, remove them completely to avoid further broken code. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
01ab6513bd
commit
c1a85daf99
@ -3627,7 +3627,6 @@ virXMLPropEnum;
|
||||
virXMLPropEnumDefault;
|
||||
virXMLPropInt;
|
||||
virXMLPropString;
|
||||
virXMLPropStringLimit;
|
||||
virXMLPropTristateBool;
|
||||
virXMLPropTristateSwitch;
|
||||
virXMLPropUInt;
|
||||
@ -3648,7 +3647,6 @@ virXPathNode;
|
||||
virXPathNodeSet;
|
||||
virXPathNumber;
|
||||
virXPathString;
|
||||
virXPathStringLimit;
|
||||
virXPathUInt;
|
||||
virXPathULong;
|
||||
virXPathULongHex;
|
||||
|
@ -89,45 +89,6 @@ virXPathString(const char *xpath,
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
virXMLStringLimitInternal(char *value,
|
||||
size_t maxlen,
|
||||
const char *name)
|
||||
{
|
||||
if (value != NULL && strlen(value) >= maxlen) {
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("'%s' value longer than '%zu' bytes"),
|
||||
name, maxlen);
|
||||
VIR_FREE(value);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virXPathStringLimit:
|
||||
* @xpath: the XPath string to evaluate
|
||||
* @maxlen: maximum length permitted string
|
||||
* @ctxt: an XPath context
|
||||
*
|
||||
* Wrapper for virXPathString, which validates the length of the returned
|
||||
* string.
|
||||
*
|
||||
* Returns a new string which must be deallocated by the caller or NULL if
|
||||
* the evaluation failed.
|
||||
*/
|
||||
char *
|
||||
virXPathStringLimit(const char *xpath,
|
||||
size_t maxlen,
|
||||
xmlXPathContextPtr ctxt)
|
||||
{
|
||||
char *tmp = virXPathString(xpath, ctxt);
|
||||
|
||||
return virXMLStringLimitInternal(tmp, maxlen, xpath);
|
||||
}
|
||||
|
||||
/**
|
||||
* virXPathNumber:
|
||||
* @xpath: the XPath string to evaluate
|
||||
@ -492,29 +453,6 @@ virXMLPropString(xmlNodePtr node,
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virXMLPropStringLimit:
|
||||
* @node: XML dom node pointer
|
||||
* @name: Name of the property (attribute) to get
|
||||
* @maxlen: maximum permitted length of the string
|
||||
*
|
||||
* Wrapper for virXMLPropString, which validates the length of the returned
|
||||
* string.
|
||||
*
|
||||
* Returns a new string which must be deallocated by the caller or NULL if
|
||||
* the evaluation failed.
|
||||
*/
|
||||
char *
|
||||
virXMLPropStringLimit(xmlNodePtr node,
|
||||
const char *name,
|
||||
size_t maxlen)
|
||||
{
|
||||
char *tmp = (char *)xmlGetProp(node, BAD_CAST name);
|
||||
|
||||
return virXMLStringLimitInternal(tmp, maxlen, name);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virXMLNodeContentString:
|
||||
* @node: XML dom node pointer
|
||||
|
@ -47,10 +47,6 @@ virXPathBoolean(const char *xpath,
|
||||
char *
|
||||
virXPathString(const char *xpath,
|
||||
xmlXPathContextPtr ctxt);
|
||||
char *
|
||||
virXPathStringLimit(const char *xpath,
|
||||
size_t maxlen,
|
||||
xmlXPathContextPtr ctxt);
|
||||
int
|
||||
virXPathNumber(const char *xpath,
|
||||
xmlXPathContextPtr ctxt,
|
||||
@ -98,10 +94,6 @@ char *
|
||||
virXMLPropString(xmlNodePtr node,
|
||||
const char *name);
|
||||
char *
|
||||
virXMLPropStringLimit(xmlNodePtr node,
|
||||
const char *name,
|
||||
size_t maxlen);
|
||||
char *
|
||||
virXMLNodeContentString(xmlNodePtr node);
|
||||
|
||||
int
|
||||
|
Loading…
x
Reference in New Issue
Block a user