From 8192554e36272d5ed21007b4c0e3b6c56511457d Mon Sep 17 00:00:00 2001 From: Simon Wilkinson Date: Tue, 26 Feb 2013 11:59:56 +0000 Subject: [PATCH] libadmin: Catch VL_GetNewVolumeId failures If ubik_VL_GetVolumeId fails in the vos ProcessEntries routine, report the failure and give up, rather than continuing with a 0 maxVolid Caught by coverity (#988417) Change-Id: I281e1c518813f9d7fab46e4f87a091fac6b3a754 Reviewed-on: http://gerrit.openafs.org/9268 Tested-by: BuildBot Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman --- src/libadmin/vos/vsprocs.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/libadmin/vos/vsprocs.c b/src/libadmin/vos/vsprocs.c index 30c47a3cf..52a4b72c8 100644 --- a/src/libadmin/vos/vsprocs.c +++ b/src/libadmin/vos/vsprocs.c @@ -2996,22 +2996,31 @@ ProcessEntries(afs_cell_handle_p cellHandle, struct qHead *myQueue, if (maxVolid <= elem.ids[RWVOL]) { temp2 = elem.ids[RWVOL] - maxVolid + 1; maxVolid = 0; - ubik_VL_GetNewVolumeId(cellHandle->vos, 0, temp2, - &maxVolid); + vcode = ubik_VL_GetNewVolumeId(cellHandle->vos, 0, temp2, + &maxVolid); + if (vcode) + return vcode; + maxVolid += temp2; } if (maxVolid <= elem.ids[ROVOL]) { temp2 = elem.ids[ROVOL] - maxVolid + 1; maxVolid = 0; - ubik_VL_GetNewVolumeId(cellHandle->vos, 0, temp2, - &maxVolid); + vcode = ubik_VL_GetNewVolumeId(cellHandle->vos, 0, temp2, + &maxVolid); + if (vcode) + return vcode; + maxVolid += temp2; } if (maxVolid <= elem.ids[BACKVOL]) { temp2 = elem.ids[BACKVOL] - maxVolid + 1; maxVolid = 0; - ubik_VL_GetNewVolumeId(cellHandle->vos, 0, temp2, - &maxVolid); + vcode = ubik_VL_GetNewVolumeId(cellHandle->vos, 0, temp2, + &maxVolid); + if (vcode) + return vcode; + maxVolid += temp2; } aVLDB_GetEntryByID(cellHandle, elem.ids[RWVOL], RWVOL, &entry, &tst); -- 2.39.5