Add additional member variable initializations
diff --git a/rmi4update/firmware_image.cpp b/rmi4update/firmware_image.cpp
index f2f6f9a..9dc9cb3 100644
--- a/rmi4update/firmware_image.cpp
+++ b/rmi4update/firmware_image.cpp
@@ -19,6 +19,7 @@
 #include <fstream>
 #include <string.h>
 #include <stdint.h>
+#include <stdlib.h>
 
 #include "firmware_image.h"
 
@@ -53,6 +54,7 @@
 	if (!ifsFile)
 		return UPDATE_FAIL_OPEN_FIRMWARE_IMAGE;
 
+	ifsFile.seekg(0, ios::end);
 	m_imageSize = (unsigned long)ifsFile.tellg();
 	m_memBlock = new unsigned char[m_imageSize];
 	ifsFile.seekg(0, ios::beg);
diff --git a/rmi4update/firmware_image.h b/rmi4update/firmware_image.h
index badd01e..18b3def 100644
--- a/rmi4update/firmware_image.h
+++ b/rmi4update/firmware_image.h
@@ -48,7 +48,7 @@
 class FirmwareImage
 {
 public:
-	FirmwareImage() : m_firmwareData(NULL), m_configData(NULL), m_lockdownData(NULL),
+	FirmwareImage() : m_firmwareBuildID(0), m_packageID(0), m_firmwareData(NULL), m_configData(NULL), m_lockdownData(NULL),
 				m_memBlock(NULL)
 	{}
 	int Initialize(const char * filename);
diff --git a/rmi4update/main.cpp b/rmi4update/main.cpp
index 2ca6efc..b2b5fcb 100644
--- a/rmi4update/main.cpp
+++ b/rmi4update/main.cpp
@@ -35,7 +35,8 @@
 	fprintf(stdout, "\t-d, --device\thidraw device file associated with the device being updated.\n");
 }
 
-int UpdateDevice(FirmwareImage & image, bool force, const char * deviceFile) {
+int UpdateDevice(FirmwareImage & image, bool force, const char * deviceFile)
+{
 	HIDDevice rmidevice;
 	int rc;
 
diff --git a/rmidevice/hiddevice.h b/rmidevice/hiddevice.h
index f086f42..810d9a6 100644
--- a/rmidevice/hiddevice.h
+++ b/rmidevice/hiddevice.h
@@ -24,8 +24,8 @@
 class HIDDevice : public RMIDevice
 {
 public:
-	HIDDevice(int bytesPerReadRequest = 0) : RMIDevice(bytesPerReadRequest), m_headIdx(0),
-			m_tailIdx(0), m_deviceOpen(false), m_attnQueueCount(0)
+	HIDDevice() : RMIDevice(), m_inputReport(NULL), m_outputReport(NULL), m_attnReportQueue(NULL), m_headIdx(0),
+			m_tailIdx(0), m_readData(NULL), m_deviceOpen(false), m_attnQueueCount(0)
 	{}
 	virtual int Open(const char * filename);
 	virtual int Read(unsigned short addr, unsigned char *buf,
diff --git a/rmidevice/rmidevice.h b/rmidevice/rmidevice.h
index e347f80..db10c5c 100644
--- a/rmidevice/rmidevice.h
+++ b/rmidevice/rmidevice.h
@@ -28,8 +28,7 @@
 class RMIDevice
 {
 public:
-	RMIDevice(int bytesPerReadRequest = 0) : m_bCancel(false),
-			m_bytesPerReadRequest(bytesPerReadRequest), m_page(-1)
+	RMIDevice() : m_functionList(), m_sensorID(0), m_bCancel(false), m_bytesPerReadRequest(0), m_page(-1)
 	{}
 	virtual int Open(const char * filename) = 0;
 	virtual int Read(unsigned short addr, unsigned char *data,