Despite the warning that virStorageSourceCopy needs to be populated on additions to the structure commit 687730540e4 neglected to implement the copy function. Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx> --- src/util/virstoragefile.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c index 58f67278da..b6a2b415e9 100644 --- a/src/util/virstoragefile.c +++ b/src/util/virstoragefile.c @@ -2041,6 +2041,29 @@ virStorageSourceChainHasManagedPR(virStorageSourcePtr src) } +static virStoragePRDefPtr +virStoragePRDefCopy(virStoragePRDefPtr src) +{ + virStoragePRDefPtr copy = NULL; + virStoragePRDefPtr ret = NULL; + + if (VIR_ALLOC(copy) < 0) + return NULL; + + copy->managed = src->managed; + + if (VIR_STRDUP(copy->path, src->path) < 0 || + VIR_STRDUP(copy->mgralias, src->mgralias) < 0) + goto cleanup; + + VIR_STEAL_PTR(ret, copy); + + cleanup: + virStoragePRDefFree(copy); + return ret; +} + + virSecurityDeviceLabelDefPtr virStorageSourceGetSecurityLabelDef(virStorageSourcePtr src, const char *model) @@ -2245,6 +2268,10 @@ virStorageSourceCopy(const virStorageSource *src, !(ret->auth = virStorageAuthDefCopy(src->auth))) goto error; + if (src->pr && + !(ret->pr = virStoragePRDefCopy(src->pr))) + goto error; + if (backingChain && src->backingStore) { if (!(ret->backingStore = virStorageSourceCopy(src->backingStore, true))) -- 2.16.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list