From 56a7c39040f347e4e7b755cc24d6420ee58f1508 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Mon, 20 Feb 2012 01:17:07 +0200 Subject: [PATCH] mgmtops: Fail if read_version fails If the mgmt_read_version command fails or indicates a too old version we should just abort since mgmt will in this case be mostly non-functional. --- plugins/mgmtops.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/mgmtops.c b/plugins/mgmtops.c index 716b4eddd..21526766e 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); -- 2.47.3