コード例 #1
0
/* Deep copy clone */
int sepol_iface_clone(
	sepol_handle_t* handle,
	const sepol_iface_t* iface, 
	sepol_iface_t** iface_ptr) {

	sepol_iface_t* new_iface = NULL;
	if (sepol_iface_create(handle, &new_iface) < 0)
		goto err;

	if (sepol_iface_set_name(handle, new_iface, iface->name) < 0)
		goto err;

	if (iface->netif_con && 
	   (sepol_context_clone(handle, iface->netif_con, &new_iface->netif_con) < 0))
		goto err;	

	if (iface->netmsg_con &&
	   (sepol_context_clone(handle, iface->netmsg_con, &new_iface->netmsg_con) < 0))
		goto err;

	*iface_ptr = new_iface;
	return STATUS_SUCCESS;

	err:
	ERR(handle, "could not clone interface record");
	sepol_iface_free(new_iface);
	return STATUS_ERR;
}
コード例 #2
0
ファイル: iface_record.c プロジェクト: Chainfire/selinux
void semanage_iface_free(semanage_iface_t * iface)
{

	sepol_iface_free(iface);
}