summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_ctl.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-04-23 08:03:47 +0000
committerphk <phk@FreeBSD.org>2003-04-23 08:03:47 +0000
commit2d7e7620e82218111499d5cc6cad57df3e4498bc (patch)
treef086988da5632af4a455ca9d17b9417bcae351ff /sys/geom/geom_ctl.c
parent90684346d69d41794fef92b9545d0ca0a83d1fe4 (diff)
downloadFreeBSD-src-2d7e7620e82218111499d5cc6cad57df3e4498bc.zip
FreeBSD-src-2d7e7620e82218111499d5cc6cad57df3e4498bc.tar.gz
Introduce gctl_get_paraml() which gets a parameter only if it has the
right length.
Diffstat (limited to 'sys/geom/geom_ctl.c')
-rw-r--r--sys/geom/geom_ctl.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/geom/geom_ctl.c b/sys/geom/geom_ctl.c
index a1133b3..92ef461 100644
--- a/sys/geom/geom_ctl.c
+++ b/sys/geom/geom_ctl.c
@@ -268,6 +268,23 @@ gctl_get_param(struct gctl_req *req, const char *param, int *len)
return (NULL);
}
+void *
+gctl_get_paraml(struct gctl_req *req, const char *param, int len)
+{
+ int i;
+ void *p;
+
+ p = gctl_get_param(req, param, &i);
+ if (p == NULL)
+ gctl_error(req, "Missing %s argument", param);
+ else if (i != len) {
+ g_free(p);
+ p = NULL;
+ gctl_error(req, "Wrong length %s argument", param);
+ }
+ return (p);
+}
+
static struct g_class*
gctl_get_class(struct gctl_req *req)
{
OpenPOWER on IntegriCloud