Index: sys/geom/eli/g_eli_integrity.c =================================================================== --- sys/geom/eli/g_eli_integrity.c +++ sys/geom/eli/g_eli_integrity.c @@ -463,8 +463,15 @@ authkey = (u_char *)p; p += G_ELI_AUTH_SECKEYLEN; data_secsize = sc->sc_data_per_sector; - if ((i % lsec) == 0) + if ((i % lsec) == 0) { data_secsize = decr_secsize % data_secsize; + /* + * Zero last encrypted sector of each decrypted sector, + * which will be partially filled, to avoid leaking + * kernel memory contents. + */ + memset(data, 0, encr_secsize); + } if (bp->bio_cmd == BIO_READ) { /* Remember read HMAC. */