changeset 148b96b7bc77 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=148b96b7bc77
description:
misc: Fix issues identified by static analysis
Another bunch of issues addressed.
diffstat:
src/base/loader/object_file.cc | 7 +++++--
src/base/statistics.hh | 3 ++-
src/base/vnc/vncserver.cc | 5 ++++-
src/mem/ruby/system/System.cc | 2 +-
src/sim/sim_object.cc | 5 +++++
src/sim/sim_object.hh | 2 +-
6 files changed, 18 insertions(+), 6 deletions(-)
diffs (98 lines):
diff -r d469fdcd937e -r 148b96b7bc77 src/base/loader/object_file.cc
--- a/src/base/loader/object_file.cc Wed Oct 01 08:05:52 2014 -0400
+++ b/src/base/loader/object_file.cc Wed Oct 01 08:05:54 2014 -0400
@@ -54,7 +54,8 @@
size_t _len, uint8_t *_data,
Arch _arch, OpSys _opSys)
: filename(_filename), descriptor(_fd), fileData(_data), len(_len),
- arch(_arch), opSys(_opSys), globalPtr(0)
+ arch(_arch), opSys(_opSys), entry(0), globalPtr(0),
+ text{0, nullptr, 0}, data{0, nullptr, 0}, bss{0, nullptr, 0}
{
}
@@ -116,7 +117,9 @@
}
// find the length of the file by seeking to the end
- size_t len = (size_t)lseek(fd, 0, SEEK_END);
+ off_t off = lseek(fd, 0, SEEK_END);
+ fatal_if(off < 0, "Failed to determine size of object file %s\n", fname);
+ size_t len = static_cast<size_t>(off);
// mmap the whole shebang
uint8_t *fileData =
diff -r d469fdcd937e -r 148b96b7bc77 src/base/statistics.hh
--- a/src/base/statistics.hh Wed Oct 01 08:05:52 2014 -0400
+++ b/src/base/statistics.hh Wed Oct 01 08:05:54 2014 -0400
@@ -1361,7 +1361,8 @@
/** The number of buckets. Equal to (max-min)/bucket_size. */
size_type buckets;
- Params() : DistParams(Dist) {}
+ Params() : DistParams(Dist), min(0), max(0), bucket_size(0),
+ buckets(0) {}
};
private:
diff -r d469fdcd937e -r 148b96b7bc77 src/base/vnc/vncserver.cc
--- a/src/base/vnc/vncserver.cc Wed Oct 01 08:05:52 2014 -0400
+++ b/src/base/vnc/vncserver.cc Wed Oct 01 08:05:54 2014 -0400
@@ -184,6 +184,8 @@
panic("%s: cannot accept a connection if not listening!", name());
int fd = listener.accept(true);
+ fatal_if(fd < 0, "%s: failed to accept VNC connection!", name());
+
if (dataFd != -1) {
char message[] = "vnc server already attached!\n";
atomic_write(fd, message, sizeof(message));
@@ -643,7 +645,8 @@
assert(fbPtr);
uint8_t *tmp = vc->convert(fbPtr);
- write(tmp, videoWidth() * videoHeight() * sizeof(uint32_t));
+ uint64_t num_pixels = videoWidth() * videoHeight();
+ write(tmp, num_pixels * sizeof(uint32_t));
delete [] tmp;
}
diff -r d469fdcd937e -r 148b96b7bc77 src/mem/ruby/system/System.cc
--- a/src/mem/ruby/system/System.cc Wed Oct 01 08:05:52 2014 -0400
+++ b/src/mem/ruby/system/System.cc Wed Oct 01 08:05:54 2014 -0400
@@ -153,7 +153,7 @@
if (gzclose(compressedMemory)) {
fatal("Close failed on memory trace file '%s'\n", filename);
}
- delete raw_data;
+ delete[] raw_data;
}
void
diff -r d469fdcd937e -r 148b96b7bc77 src/sim/sim_object.cc
--- a/src/sim/sim_object.cc Wed Oct 01 08:05:52 2014 -0400
+++ b/src/sim/sim_object.cc Wed Oct 01 08:05:54 2014 -0400
@@ -70,6 +70,11 @@
probeManager = new ProbeManager(this);
}
+SimObject::~SimObject()
+{
+ delete probeManager;
+}
+
void
SimObject::init()
{
diff -r d469fdcd937e -r 148b96b7bc77 src/sim/sim_object.hh
--- a/src/sim/sim_object.hh Wed Oct 01 08:05:52 2014 -0400
+++ b/src/sim/sim_object.hh Wed Oct 01 08:05:54 2014 -0400
@@ -101,7 +101,7 @@
typedef SimObjectParams Params;
const Params *params() const { return _params; }
SimObject(const Params *_params);
- virtual ~SimObject() {}
+ virtual ~SimObject();
public:
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev