_hppa_unaligned_access_fix_458133
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Sun, 14 Jun 2015 16:38:43 +0000 (16:38 +0000)
committerRaspbian forward porter <root@raspbian.org>
Sun, 14 Jun 2015 16:38:43 +0000 (16:38 +0000)
Fix unaligned access on hppa

Gbp-Pq: Name 71_hppa_unaligned_access_fix_458133.diff

src/3rdparty/sha1/sha1.cpp

index a55843e55e6cec6c7c426f5cb76a289c40b41589..ef079807ef5005ac3e3e60d073e05f91ca2dce52 100644 (file)
@@ -150,10 +150,10 @@ static inline void sha1ProcessChunk(Sha1State *state, const unsigned char *buffe
     quint32 d = state->h3;
     quint32 e = state->h4;
 
-    quint8 chunkBuffer[64];
-    memcpy(chunkBuffer, buffer, 64);
+    Sha1Chunk chunkBuffer;
+    memcpy(chunkBuffer.bytes, buffer, 64);
 
-    Sha1Chunk *chunk = reinterpret_cast<Sha1Chunk*>(&chunkBuffer);
+    Sha1Chunk *chunk = &chunkBuffer;
 
     for (int i = 0; i < 16; ++i)
         chunk->words[i] = qFromBigEndian(chunk->words[i]);
@@ -189,7 +189,7 @@ static inline void sha1ProcessChunk(Sha1State *state, const unsigned char *buffe
     // Wipe variables
 #ifdef SHA1_WIPE_VARIABLES
     a = b = c = d = e = 0;
-    memset(chunkBuffer, 0, 64);
+    memset(chunkBuffer.bytes, 0, 64);
 #endif
 }