Diff between b6490e9ee500d912fbf58781b6b3cd96e78d9243 and 56a7c39040f347e4e7b755cc24d6420ee58f1508

Changed Files

File Additions Deletions Status
plugins/mgmtops.c +9 -2 modified

Full Patch

diff --git a/plugins/mgmtops.c b/plugins/mgmtops.c
index 716b4ed..2152676 100644
--- a/plugins/mgmtops.c
+++ b/plugins/mgmtops.c
@@ -77,8 +77,9 @@ static void read_version_complete(int sk, void *buf, size_t len)
 	struct mgmt_rp_read_version *rp = buf;
 
 	if (len < sizeof(*rp)) {
-		error("Too small read version complete event");
-		return;
+		error("Too small read version complete event"
+				" (probably an old kernel)");
+		abort();
 	}
 
 	mgmt_revision = btohs(bt_get_unaligned(&rp->revision));
@@ -86,6 +87,12 @@ static void read_version_complete(int sk, void *buf, size_t len)
 
 	DBG("version %u revision %u", mgmt_version, mgmt_revision);
 
+	if (mgmt_version < 1) {
+		error("Version 1 of mgmt needed (kernel has version %u)",
+								mgmt_version);
+		abort();
+	}
+
 	memset(&hdr, 0, sizeof(hdr));
 	hdr.opcode = htobs(MGMT_OP_READ_INDEX_LIST);
 	hdr.index = htobs(MGMT_INDEX_NONE);