title: C/C++ error: Out of bounds read. Looking at the wrong memory address
body: <p>I am trying to write this function that should return an uint32_t but I am running into a out of bounds read error which means that it is reading from the wrong memory.
  The error is in the line sumOfKey += aonEfuse->eFuseBitArray.secFAKEK[keyIndex]; and the error states overrun-local: Overrunning array aonEfuse->eFuseBitArray.secFAKEK of 8 4-byte elements at element index 8 (byte offset 35) using index keyIndex (which evaluates to 8). Do note that secFAKEK is defined as: </p>
  
  <pre><code>uint32_t secFAKEK[EFUSE_SEC_FAKEK_SIZE_WORDS]; 
  SEC_KM_AES_KEY_SIZE_IN_BYTES = 32
  </code></pre>
  
  <p>Also, <code>EFUSE_SEC_FAKEK_SIZE_WORDS = 0x08</code></p>
  
  <pre><code>uint32_t SEC_CODE_SLOW SEC_KM_GetFAKEKVersion(void)
  {
     uint64_t sumOfKey = 0;
     uint32_t keyIndex = 0;
     const uint32_t keySizeDwords = SEC_KM_AES_KEY_SIZE_IN_BYTES / sizeof(uint32_t);
     AON_eFuseData_t *aonEfuse = SYS_GetAONeFuseData();
  
     if (!aonEfuse)
     {
        return MAX_UINT32;
     }
  
     while (keyIndex++ &lt; keySizeDwords)
     {
        sumOfKey += aonEfuse-&gt;eFuseBitArray.secFAKEK[keyIndex];
     }
  
     return sumOfKey == 0 ? 0 : ((sumOfKey == 0xFFFFFFFFULL * keySizeDwords) ? 2 : 1);
  }
  
  </code></pre>