Page MenuHomeFreeBSD

D7905.id21587.diff
No OneTemporary

D7905.id21587.diff

Index: sbin/geom/class/eli/geom_eli.c
===================================================================
--- sbin/geom/class/eli/geom_eli.c
+++ sbin/geom/class/eli/geom_eli.c
@@ -666,7 +666,7 @@
eli_init(struct gctl_req *req)
{
struct g_eli_metadata md;
- unsigned char sector[sizeof(struct g_eli_metadata)];
+ unsigned char sector[sizeof(struct g_eli_metadata)] __aligned(4);
unsigned char key[G_ELI_USERKEYLEN];
char backfile[MAXPATHLEN];
const char *str, *prov;
Index: sys/geom/eli/g_eli.h
===================================================================
--- sys/geom/eli/g_eli.h
+++ sys/geom/eli/g_eli.h
@@ -248,6 +248,9 @@
uint8_t md_salt[G_ELI_SALTLEN]; /* Salt. */
/* Encrypted master key (IV-key, Data-key, HMAC). */
uint8_t md_mkeys[G_ELI_MAXMKEYS * G_ELI_MKEYLEN];
+#if defined(__mips_n64) || defined(__mips_o64)
+ uint8_t unused[1]; /* Alignment for MD5. */
+#endif
u_char md_hash[16]; /* MD5 hash. */
} __packed;
#ifndef _OpenSSL_
Index: sys/geom/eli/g_eli_integrity.c
===================================================================
--- sys/geom/eli/g_eli_integrity.c
+++ sys/geom/eli/g_eli_integrity.c
@@ -444,6 +444,9 @@
size += sizeof(*crde) * nsec;
size += sizeof(*crda) * nsec;
size += G_ELI_AUTH_SECKEYLEN * nsec;
+#if defined(__mips_n64) || defined(__mips_o64)
+ size += sizeof(uintptr_t); /* Space for alignment. */
+#endif
data = malloc(size, M_ELI, M_WAITOK);
bp->bio_driver2 = data;
p = data + encr_secsize * nsec;
@@ -451,6 +454,10 @@
bp->bio_inbed = 0;
bp->bio_children = nsec;
+#if defined(__mips_n64) || defined(__mips_o64)
+ p = (char *)roundup((uintptr_t)p, sizeof(uintptr_t));
+#endif
+
for (i = 1; i <= nsec; i++, dstoff += encr_secsize) {
crp = (struct cryptop *)p; p += sizeof(*crp);
crde = (struct cryptodesc *)p; p += sizeof(*crde);

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 21, 7:00 PM (6 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25789487
Default Alt Text
D7905.id21587.diff (1 KB)

Event Timeline