
On 12/16/2013 09:32 AM, Peter Krempa wrote:
The fix for the missing slash at the beginning of the volume URI prints to a bad variable causing a memory leak and another one if the variable will be fixed. Revert the commit instead as we can just add a slash to the "key" attribute.
The fix also caused a regression, where the path of the volume didn't include the actual volume name and thus was invalid.
This reverts commit 6cd60b687acd04ea1538690b7d80f2809e0e29d4. --- src/storage/storage_backend_gluster.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/storage/storage_backend_gluster.c b/src/storage/storage_backend_gluster.c index 622526b..1be9034 100644 --- a/src/storage/storage_backend_gluster.c +++ b/src/storage/storage_backend_gluster.c @@ -227,10 +227,7 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state, goto cleanup;
tmp = state->uri->path; - if (virAsprintf(&vol->key, "%s%s", state->uri->path, name) < 0) {
Uggh. I see what I did: I swapped vol->key and state->uri->path, and didn't run my patch through valgrind (where I would have seen the problem).
- state->uri->path = tmp; - goto cleanup; - } + state->uri->path = vol->key;
Rather than reverting this patch, I'd prefer to fix the string creation to use the intended order: diff --git i/src/storage/storage_backend_gluster.c w/src/storage/storage_backend_gluster.c index 622526b..aab70ba 100644 --- i/src/storage/storage_backend_gluster.c +++ w/src/storage/storage_backend_gluster.c @@ -227,7 +227,7 @@ virStorageBackendGlusterRefreshVol(virStorageBackendGlusterStatePtr state, goto cleanup; tmp = state->uri->path; - if (virAsprintf(&vol->key, "%s%s", state->uri->path, name) < 0) { + if (virAsprintf(&state->uri->path, "%s%s", vol->key, name) < 0) { state->uri->path = tmp; goto cleanup; } -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org