On 10/7/19 6:49 PM, Cole Robinson wrote:
>From f772b3d91fd the intention of this code seems to be to set
Is this leading '>' a bogus?
format=NONE when the image does not have a backing file. However
'buf' here is the whole qcow1 file header. What we want to be
checking is 'res' which is the parsed backing file path.
qcowXGetBackingStore sets this to NULL when there's no backing file.
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
This is unusual. Either the qcow file header 'buf' is being set to \0 when
there is no backing file (which would make the current code work even
when checking the wrong thing) or this is a bug that flew under the radar
from a long time.
Reviewed-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
src/util/virstoragefile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 1549067c48..016c8f0799 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -578,7 +578,7 @@ qcow1GetBackingStore(char **res,
* used to store backing format */
*format = VIR_STORAGE_FILE_AUTO;
ret = qcowXGetBackingStore(res, NULL, buf, buf_size, false);
- if (ret == BACKING_STORE_OK && *buf == '\0')
+ if (ret == BACKING_STORE_OK && !*res)
*format = VIR_STORAGE_FILE_NONE;
return ret;
}