an open() failure for fd_dasd will return -1, not 0. Also, cast blocksize
to a uint64_t to keep coverity from complaining about sign extension issues.

Signed-off-by: Benjamin Marzinski <[email protected]>
---
 kpartx/dasd.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/kpartx/dasd.c b/kpartx/dasd.c
index e418d5a..94ae81b 100644
--- a/kpartx/dasd.c
+++ b/kpartx/dasd.c
@@ -129,7 +129,7 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, 
int ns)
                         */
                        unlink(pathname);
                }
-               if (!fd_dasd) {
+               if (fd_dasd < 0) {
                        /* Couldn't open the device */
                        return -1;
                }
@@ -157,7 +157,8 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, 
int ns)
 
                geo.heads = 15;
                geo.sectors = recs_per_track(blocksize);
-               cyl = disksize / (blocksize * geo.heads * geo.sectors);
+               cyl = disksize / ((uint64_t)blocksize * geo.heads *
+                                 geo.sectors);
                if (cyl < LV_COMPAT_CYL)
                        geo.cylinders = cyl;
                else
-- 
2.7.4

--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to