spapr_nvram: Check return value from blk_getlength()
The blk_getlength() function can return an error value if the image size cannot be determined. Check for this rather than ploughing on and trying to g_malloc0() a negative number. (Spotted by Coverity, CID 1288484.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
60694bc678
commit
0524951788
@ -144,7 +144,15 @@ static void spapr_nvram_realize(VIOsPAPRDevice *dev, Error **errp)
|
||||
int ret;
|
||||
|
||||
if (nvram->blk) {
|
||||
nvram->size = blk_getlength(nvram->blk);
|
||||
int64_t len = blk_getlength(nvram->blk);
|
||||
|
||||
if (len < 0) {
|
||||
error_setg_errno(errp, -len,
|
||||
"could not get length of backing image");
|
||||
return;
|
||||
}
|
||||
|
||||
nvram->size = len;
|
||||
|
||||
ret = blk_set_perm(nvram->blk,
|
||||
BLK_PERM_CONSISTENT_READ | BLK_PERM_WRITE,
|
||||
|
Loading…
x
Reference in New Issue
Block a user