]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Fix wrong memcpy length for block_interleave == 4 (#19575)
authorAlberto Cabrera Pérez <redacted>
Fri, 13 Feb 2026 12:32:14 +0000 (12:32 +0000)
committerGitHub <redacted>
Fri, 13 Feb 2026 12:32:14 +0000 (20:32 +0800)
ggml/src/ggml-cpu/repack.cpp

index 4cb7cdeb07ba308b043b1d2460239f5a8463f961..f94426ddd7f690a9583d748809b545ce8620b60b 100644 (file)
@@ -1916,9 +1916,10 @@ static block_q4_Kx8 make_block_q4_Kx8(block_q4_K * in, unsigned int blck_size_in
         int src_offset = (i / 8) * blck_size_interleave;
         int dst_offset = i * blck_size_interleave;
 
+        // buffer large enough for the max interleave block size (8 bytes)
         uint64_t elems;
-        memcpy(&elems, &in[src_id].qs[src_offset], sizeof(uint64_t));
-        memcpy(&out.qs[dst_offset], &elems, sizeof(uint64_t));
+        memcpy(&elems, &in[src_id].qs[src_offset], blck_size_interleave);
+        memcpy(&out.qs[dst_offset], &elems, blck_size_interleave);
     }
 
     // The below logic is designed so as to unpack and rearrange scales and mins values in Q4_K