From 40fcaded53daea81cc6f5a1136e2bc382dc51bab Mon Sep 17 00:00:00 2001 From: Marcel Moolenaar Date: Sun, 18 Sep 2005 23:54:40 +0000 Subject: [PATCH] o Don't cause a panic when the control request lacks a verb. o Don't set the error twice when the named class does not exist. It causes ioctl(2) to return with error EEXIST. --- sys/geom/geom_ctl.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/sys/geom/geom_ctl.c b/sys/geom/geom_ctl.c index e67d84bb58e3..8186bc71e20b 100644 --- a/sys/geom/geom_ctl.c +++ b/sys/geom/geom_ctl.c @@ -371,7 +371,6 @@ gctl_get_class(struct gctl_req *req, char const *arg) if (!strcmp(p, cp->name)) return (cp); } - gctl_error(req, "Class not found"); return (NULL); } @@ -427,11 +426,16 @@ g_ctl_req(void *arg, int flag __unused) gctl_error(req, "Class not found"); return; } - verb = gctl_get_param(req, "verb", NULL); - if (mp->ctlreq == NULL) + if (mp->ctlreq == NULL) { gctl_error(req, "Class takes no requests"); - else - mp->ctlreq(req, mp, verb); + return; + } + verb = gctl_get_param(req, "verb", NULL); + if (verb == NULL) { + gctl_error(req, "Verb missing"); + return; + } + mp->ctlreq(req, mp, verb); g_topology_assert(); }