summaryrefslogtreecommitdiffstats
path: root/sys/geom
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2011-10-25 13:44:23 +0000
committerpjd <pjd@FreeBSD.org>2011-10-25 13:44:23 +0000
commitc81944165865e672dfdc82f496f20a2896f64312 (patch)
treef4d5f7e2cb84f224fc3171e6083575fc4a8f32b0 /sys/geom
parent63e5ed957095fe6fdf121764efcefeaae39cc414 (diff)
downloadFreeBSD-src-c81944165865e672dfdc82f496f20a2896f64312.zip
FreeBSD-src-c81944165865e672dfdc82f496f20a2896f64312.tar.gz
When decoding metadata, check magic string, so we know this is not GELI device
before we check its version. We don't want to report that some garbage is unsupported version if this is not even GELI provider. MFC after: 3 days
Diffstat (limited to 'sys/geom')
-rw-r--r--sys/geom/eli/g_eli.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/geom/eli/g_eli.h b/sys/geom/eli/g_eli.h
index ae43859..0f35cd6 100644
--- a/sys/geom/eli/g_eli.h
+++ b/sys/geom/eli/g_eli.h
@@ -294,6 +294,8 @@ eli_metadata_decode(const u_char *data, struct g_eli_metadata *md)
int error;
bcopy(data, md->md_magic, sizeof(md->md_magic));
+ if (strcmp(md->md_magic, G_ELI_MAGIC) != 0)
+ return (EINVAL);
md->md_version = le32dec(data + sizeof(md->md_magic));
switch (md->md_version) {
case G_ELI_VERSION_00:
OpenPOWER on IntegriCloud