Empty strings are forbidden as input to rte_pci_addr_parse().
It is explicitly enforced in BDF parsing as parsing the bus
field will immediately fail. The related check is commented.
It is implicitly enforced in DBDF parsing, as the domain would be
parsed to 0 without error, but the check `end[0] != ':'` afterward
will return -EINVAL.
Enforcing consistency between parsers by reading the code is not helped
by this property being implicit. Add a comment to explain.
Signed-off-by: Gaetan Rivet <grive@u256.net>
Acked-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
errno = 0;
val = strtoul(in, &end, 16);
+ /* Empty string is not an error for strtoul, but the check
+ * end[0] != ':'
+ * will detect the issue.
+ */
if (errno != 0 || end[0] != ':' || val > UINT32_MAX)
return -EINVAL;
dev_addr->domain = (uint32_t)val;