Skip to content

Commit 816d016

Browse files
committed
Memory leak reading access control configuration
Signed-off-by: Erik Boasson <[email protected]>
1 parent 9579461 commit 816d016

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

src/security/builtin_plugins/access_control/src/access_control.c

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2063,23 +2063,27 @@ read_document(
20632063
char **doc,
20642064
DDS_Security_SecurityException *ex)
20652065
{
2066-
bool result = true;
20672066
char *data = NULL;
2068-
20692067
switch (DDS_Security_get_conf_item_type(doc_uri, &data))
20702068
{
2071-
case DDS_SECURITY_CONFIG_ITEM_PREFIX_DATA:
2072-
*doc = data;
2073-
break;
2074-
case DDS_SECURITY_CONFIG_ITEM_PREFIX_FILE:
2075-
result = read_document_from_file(data, doc, ex);
2076-
ddsrt_free(data);
2077-
break;
2078-
default:
2079-
DDS_Security_Exception_set(ex, DDS_ACCESS_CONTROL_PLUGIN_CONTEXT, DDS_SECURITY_ERR_URI_TYPE_NOT_SUPPORTED_CODE, 0, DDS_SECURITY_ERR_URI_TYPE_NOT_SUPPORTED_MESSAGE, doc_uri);
2080-
return false;
2069+
case DDS_SECURITY_CONFIG_ITEM_PREFIX_DATA:
2070+
*doc = data;
2071+
return true;
2072+
2073+
case DDS_SECURITY_CONFIG_ITEM_PREFIX_FILE: {
2074+
const bool result = read_document_from_file(data, doc, ex);
2075+
ddsrt_free(data);
2076+
return result;
2077+
}
2078+
2079+
case DDS_SECURITY_CONFIG_ITEM_PREFIX_PKCS11:
2080+
case DDS_SECURITY_CONFIG_ITEM_PREFIX_UNKNOWN:
2081+
DDS_Security_Exception_set(ex, DDS_ACCESS_CONTROL_PLUGIN_CONTEXT, DDS_SECURITY_ERR_URI_TYPE_NOT_SUPPORTED_CODE, 0, DDS_SECURITY_ERR_URI_TYPE_NOT_SUPPORTED_MESSAGE, doc_uri);
2082+
ddsrt_free(data);
2083+
return false;
20812084
}
2082-
return result;
2085+
assert (0);
2086+
return false;
20832087
}
20842088

20852089
static bool

0 commit comments

Comments
 (0)