summaryrefslogtreecommitdiff
path: root/server/omapi.c
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2014-08-25 13:22:29 -0400
committerThomas Markwalder <tmark@isc.org>2014-08-25 13:22:29 -0400
commit36e2c22493c0f2357aec2ccf4ed37c2eb676bc56 (patch)
tree4b25c231829bb0dbeadc9d2d0255373b089b2d59 /server/omapi.c
parenta6365d17d1d8601601539b58f9a3aa03415a6dbb (diff)
downloadisc-dhcp-36e2c22493c0f2357aec2ccf4ed37c2eb676bc56.tar.gz
[master] Corrects high impact issues reported by Coverity.
Merges in rt36712
Diffstat (limited to 'server/omapi.c')
-rw-r--r--server/omapi.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/server/omapi.c b/server/omapi.c
index 84a1bd89..08178717 100644
--- a/server/omapi.c
+++ b/server/omapi.c
@@ -1733,21 +1733,14 @@ class_set_value (omapi_object_t *h,
class = (struct class *)h;
if (!omapi_ds_strcmp(name, "name")) {
- char *tname;
-
if (class->name)
return ISC_R_EXISTS;
- if ((tname = dmalloc(value->u.buffer.len + 1, MDL)) == NULL) {
- return ISC_R_NOMEMORY;
- }
-
- /* tname is null terminated from dmalloc() */
- memcpy(tname, value->u.buffer.value, value->u.buffer.len);
-
if (issubclass) {
+ char tname[value->u.buffer.len + 1];
+ memcpy(tname, value->u.buffer.value, value->u.buffer.len);
+ tname[sizeof(tname)-1] = '\0';
status = find_class(&superclass, tname, MDL);
- dfree(tname, MDL);
if (status == ISC_R_NOTFOUND)
return status;