From d1b9afd28a8de901a0b38bba3d292d627d0d1663 Mon Sep 17 00:00:00 2001 From: Xin LI Date: Tue, 16 Feb 2010 06:34:44 +0000 Subject: [PATCH] MFC r203408: Prevent NULL deference by checking return value of gctl_get_asciiparam. --- sys/geom/virstor/g_virstor.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/geom/virstor/g_virstor.c b/sys/geom/virstor/g_virstor.c index 1de3d5ae28e..974c5946d64 100644 --- a/sys/geom/virstor/g_virstor.c +++ b/sys/geom/virstor/g_virstor.c @@ -311,6 +311,11 @@ virstor_ctl_add(struct gctl_req *req, struct g_class *cp) snprintf(aname, sizeof aname, "arg%d", i); prov_name = gctl_get_asciiparam(req, aname); + if (prov_name == NULL) { + gctl_error(req, "Error fetching argument '%s'", aname); + g_topology_unlock(); + return; + } if (strncmp(prov_name, _PATH_DEV, strlen(_PATH_DEV)) == 0) prov_name += strlen(_PATH_DEV); @@ -565,6 +570,10 @@ virstor_ctl_remove(struct gctl_req *req, struct g_class *cp) sprintf(param, "arg%d", i); prov_name = gctl_get_asciiparam(req, param); + if (prov_name == NULL) { + gctl_error(req, "Error fetching argument '%s'", param); + return; + } if (strncmp(prov_name, _PATH_DEV, strlen(_PATH_DEV)) == 0) prov_name += strlen(_PATH_DEV);