diff options
author | Thomas Markwalder <tmark@isc.org> | 2014-08-25 13:22:29 -0400 |
---|---|---|
committer | Thomas Markwalder <tmark@isc.org> | 2014-08-25 13:22:29 -0400 |
commit | 36e2c22493c0f2357aec2ccf4ed37c2eb676bc56 (patch) | |
tree | 4b25c231829bb0dbeadc9d2d0255373b089b2d59 /server/omapi.c | |
parent | a6365d17d1d8601601539b58f9a3aa03415a6dbb (diff) | |
download | isc-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.c | 13 |
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; |