diff --git a/peci.c b/peci.c
index ba38e00..2627a03 100644
--- a/peci.c
+++ b/peci.c
@@ -47,7 +47,7 @@
  *------------------------------------------------------------------------*/
 EPECIStatus peci_Lock(int* peci_fd, int timeout_ms)
 {
-    struct timespec sRequest;
+    struct timespec sRequest = {};
     sRequest.tv_sec = 0;
     sRequest.tv_nsec = PECI_TIMEOUT_RESOLUTION_MS * 1000 * 1000;
     int timeout_count = 0;
@@ -141,8 +141,8 @@
     };
     uint8_t u8Bus0 = 0;
     uint8_t u8Offset = 0;
-    EPECIStatus ret;
-    uint8_t u8Reg[4];
+    EPECIStatus ret = PECI_CC_SUCCESS;
+    uint8_t u8Reg[4] = {};
     uint8_t cc = 0;
 
     // First check for valid inputs
@@ -203,7 +203,7 @@
 EPECIStatus peci_Ping(uint8_t target)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     // The target address must be in the valid range
     if (target < MIN_CLIENT_ADDR || target > MAX_CLIENT_ADDR)
@@ -227,8 +227,8 @@
  *------------------------------------------------------------------------*/
 EPECIStatus peci_Ping_seq(uint8_t target, int peci_fd)
 {
-    EPECIStatus ret;
-    struct peci_ping_msg cmd;
+    EPECIStatus ret = PECI_CC_SUCCESS;
+    struct peci_ping_msg cmd = {};
 
     // The target address must be in the valid range
     if (target < MIN_CLIENT_ADDR || target > MAX_CLIENT_ADDR)
@@ -248,7 +248,7 @@
 EPECIStatus peci_GetDIB(uint8_t target, uint64_t* dib)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (dib == NULL)
     {
@@ -277,8 +277,8 @@
  *------------------------------------------------------------------------*/
 EPECIStatus peci_GetDIB_seq(uint8_t target, uint64_t* dib, int peci_fd)
 {
-    struct peci_get_dib_msg cmd;
-    EPECIStatus ret;
+    struct peci_get_dib_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
     cmd.addr = target;
 
     if (dib == NULL)
@@ -309,7 +309,7 @@
 EPECIStatus peci_GetTemp(uint8_t target, int16_t* temperature)
 {
     int peci_fd = -1;
-    struct peci_get_temp_msg cmd;
+    struct peci_get_temp_msg cmd = {};
 
     if (temperature == NULL)
     {
@@ -351,7 +351,7 @@
                              uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPkgConfig == NULL || cc == NULL)
     {
@@ -383,8 +383,8 @@
                                  uint16_t u16Value, uint8_t u8ReadLen,
                                  uint8_t* pPkgConfig, int peci_fd, uint8_t* cc)
 {
-    struct peci_rd_pkg_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_rd_pkg_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPkgConfig == NULL || cc == NULL)
     {
@@ -432,7 +432,7 @@
                              uint32_t u32Value, uint8_t u8WriteLen, uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (cc == NULL)
     {
@@ -464,8 +464,8 @@
                                  uint16_t u16Param, uint32_t u32Value,
                                  uint8_t u8WriteLen, int peci_fd, uint8_t* cc)
 {
-    struct peci_wr_pkg_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_wr_pkg_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (cc == NULL)
     {
@@ -504,8 +504,8 @@
                          uint64_t* u64MsrVal, uint8_t* cc)
 {
     int peci_fd = -1;
-    struct peci_rd_ia_msr_msg cmd;
-    EPECIStatus ret;
+    struct peci_rd_ia_msr_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (u64MsrVal == NULL || cc == NULL)
     {
@@ -547,7 +547,7 @@
                              uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIData == NULL || cc == NULL)
     {
@@ -580,8 +580,8 @@
                                  uint16_t u16Reg, uint8_t* pPCIData,
                                  int peci_fd, uint8_t* cc)
 {
-    struct peci_rd_pci_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_rd_pci_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIData == NULL || cc == NULL)
     {
@@ -626,7 +626,7 @@
                                   uint8_t* pPCIReg, uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIReg == NULL || cc == NULL)
     {
@@ -660,8 +660,8 @@
                                       uint8_t* pPCIReg, int peci_fd,
                                       uint8_t* cc)
 {
-    struct peci_rd_pci_cfg_local_msg cmd;
-    EPECIStatus ret;
+    struct peci_rd_pci_cfg_local_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIReg == NULL || cc == NULL)
     {
@@ -713,8 +713,8 @@
                                   uint32_t DataVal, uint8_t* cc)
 {
     int peci_fd = -1;
-    struct peci_wr_pci_cfg_local_msg cmd;
-    EPECIStatus ret;
+    struct peci_wr_pci_cfg_local_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (cc == NULL)
     {
@@ -762,8 +762,8 @@
     uint8_t u8Device, uint8_t u8Fcn, uint16_t u16Reg, uint8_t u8ReadLen,
     uint8_t* pPCIData, int peci_fd, uint8_t* cc)
 {
-    struct peci_rd_end_pt_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_rd_end_pt_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIData == NULL || cc == NULL)
     {
@@ -817,7 +817,7 @@
                                      uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIData == NULL || cc == NULL)
     {
@@ -884,7 +884,7 @@
                                           uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pPCIData == NULL || cc == NULL)
     {
@@ -953,7 +953,7 @@
                                       uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pMmioData == NULL || cc == NULL)
     {
@@ -986,8 +986,8 @@
     uint8_t u8Fcn, uint8_t u8Bar, uint8_t u8AddrType, uint64_t u64Offset,
     uint8_t u8ReadLen, uint8_t* pMmioData, int peci_fd, uint8_t* cc)
 {
-    struct peci_rd_end_pt_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_rd_end_pt_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pMmioData == NULL || cc == NULL)
     {
@@ -1049,8 +1049,8 @@
                                       uint32_t DataVal, int peci_fd,
                                       uint8_t* cc)
 {
-    struct peci_wr_end_pt_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_wr_end_pt_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (cc == NULL)
     {
@@ -1095,7 +1095,7 @@
                                           uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (peci_Open(&peci_fd) != PECI_CC_SUCCESS)
     {
@@ -1119,7 +1119,7 @@
                                      uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (peci_Open(&peci_fd) != PECI_CC_SUCCESS)
     {
@@ -1144,7 +1144,7 @@
                                       uint8_t* cc)
 {
     int peci_fd = -1;
-    EPECIStatus ret;
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (cc == NULL)
     {
@@ -1177,8 +1177,8 @@
     uint8_t u8Fcn, uint8_t u8Bar, uint8_t u8AddrType, uint64_t u64Offset,
     uint8_t u8DataLen, uint64_t u64DataVal, int peci_fd, uint8_t* cc)
 {
-    struct peci_wr_end_pt_cfg_msg cmd;
-    EPECIStatus ret;
+    struct peci_wr_end_pt_cfg_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (cc == NULL)
     {
@@ -1224,8 +1224,8 @@
                                      uint8_t* pData, uint8_t* cc)
 {
     int peci_fd = -1;
-    struct peci_crashdump_disc_msg cmd;
-    EPECIStatus ret;
+    struct peci_crashdump_disc_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pData == NULL || cc == NULL)
     {
@@ -1286,8 +1286,8 @@
                                     uint8_t* cc)
 {
     int peci_fd = -1;
-    struct peci_crashdump_get_frame_msg cmd;
-    EPECIStatus ret;
+    struct peci_crashdump_get_frame_msg cmd = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (pData == NULL || cc == NULL)
     {
@@ -1346,10 +1346,10 @@
                      uint32_t respSize)
 {
     int peci_fd = -1;
-    struct peci_xfer_msg cmd;
-    uint8_t u8TxBuf[PECI_BUFFER_SIZE];
-    uint8_t u8RxBuf[PECI_BUFFER_SIZE];
-    EPECIStatus ret;
+    struct peci_xfer_msg cmd = {};
+    uint8_t u8TxBuf[PECI_BUFFER_SIZE] = {};
+    uint8_t u8RxBuf[PECI_BUFFER_SIZE] = {};
+    EPECIStatus ret = PECI_CC_SUCCESS;
 
     if (u8ReadLen && pRawResp == NULL)
     {
