From 234c9a36a21fae7c0489e2f67b8e0385e61db732 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Wed, 17 Apr 2013 08:17:03 -0400 Subject: [PATCH] dev: Fix a bug in the use of seekp/seekg This patch fixes two instances of incorrect use of the seekp/seekg stream member functions. These two functions return a stream reference (*this), and should not be compared to an integer value. --- src/dev/disk_image.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/dev/disk_image.cc b/src/dev/disk_image.cc index 84027d9b4..8194eb507 100644 --- a/src/dev/disk_image.cc +++ b/src/dev/disk_image.cc @@ -108,7 +108,8 @@ RawDiskImage::read(uint8_t *data, std::streampos offset) const if (!stream.is_open()) panic("file not open!\n"); - if (stream.seekg(offset * SectorSize, ios::beg) < 0) + stream.seekg(offset * SectorSize, ios::beg); + if (!stream.good()) panic("Could not seek to location in file"); streampos pos = stream.tellg(); @@ -132,7 +133,8 @@ RawDiskImage::write(const uint8_t *data, std::streampos offset) if (!stream.is_open()) panic("file not open!\n"); - if (stream.seekp(offset * SectorSize, ios::beg) < 0) + stream.seekp(offset * SectorSize, ios::beg); + if (!stream.good()) panic("Could not seek to location in file"); DPRINTF(DiskImageWrite, "write: offset=%d\n", (uint64_t)offset);