_hppa_unaligned_access_fix_458133
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Tue, 5 Feb 2013 21:52:29 +0000 (21:52 +0000)
committerLisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Tue, 5 Feb 2013 21:52:29 +0000 (21:52 +0000)
Fix unaligned access on hppa

Gbp-Pq: Name 71_hppa_unaligned_access_fix_458133.diff

src/3rdparty/sha1/sha1.cpp

index 6270140a79bc1ae57fb4fee80d0e7bd03db69390..64f8910023a0ffb447c58b47dc99f603f3541c85 100644 (file)
@@ -149,10 +149,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]);
@@ -188,7 +188,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
 }