_hppa_unaligned_access_fix_458133
authorBernhard R. Link <brlink@debian.org>
Sun, 20 Sep 2020 19:01:50 +0000 (20:01 +0100)
committerAdrian Bunk <bunk@debian.org>
Sun, 20 Sep 2020 19:01:50 +0000 (20:01 +0100)
Fix unaligned access on hppa

Gbp-Pq: Name 71_hppa_unaligned_access_fix_458133.diff

src/3rdparty/sha1/sha1.cpp

index 2201258b762a153124f93df86b80acc01c25345c..84a860bf2cbe5f446066a29d1b567727a0215f3a 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
 }