mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
logical: Clean up allocation when building regex on the fly
Rather than a loop reallocating space to build the regex, just allocate it once up front, then if there's more than 1 nextent, append a comma and another regex_unit string. Signed-off-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
@@ -120,12 +120,11 @@ virStorageBackendLogicalParseVolExtents(virStorageVolDefPtr vol,
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (VIR_STRDUP(regex, regex_unit) < 0)
|
/* Allocate space for 'nextents' regex_unit strings plus a comma for each */
|
||||||
|
if (VIR_ALLOC_N(regex, nextents * (strlen(regex_unit) + 1) + 1) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
strncat(regex, regex_unit, strlen(regex_unit));
|
||||||
for (i = 1; i < nextents; i++) {
|
for (i = 1; i < nextents; i++) {
|
||||||
if (VIR_REALLOC_N(regex, strlen(regex) + strlen(regex_unit) + 2) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
/* "," is the separator of "devices" field */
|
/* "," is the separator of "devices" field */
|
||||||
strcat(regex, ",");
|
strcat(regex, ",");
|
||||||
strncat(regex, regex_unit, strlen(regex_unit));
|
strncat(regex, regex_unit, strlen(regex_unit));
|
||||||
|
|||||||
Reference in New Issue
Block a user