diff options
author | phk <phk@FreeBSD.org> | 2003-04-23 08:03:47 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-04-23 08:03:47 +0000 |
commit | 2d7e7620e82218111499d5cc6cad57df3e4498bc (patch) | |
tree | f086988da5632af4a455ca9d17b9417bcae351ff /sys/geom/geom_ctl.c | |
parent | 90684346d69d41794fef92b9545d0ca0a83d1fe4 (diff) | |
download | FreeBSD-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.c | 17 |
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) { |