diff --git a/src/libs/zbxdbhigh/host.c b/src/libs/zbxdbhigh/host.c
index 0a6d0184972..7f4a56177e6 100644
--- a/src/libs/zbxdbhigh/host.c
+++ b/src/libs/zbxdbhigh/host.c
@@ -4060,7 +4060,7 @@ static void	DBhost_prototypes_save(const zbx_vector_ptr_t *host_prototypes,
 						interface->interfaceid, interface->main, interface->type,
 						interface->useip, interface->ip, interface->dns, atoi(interface->port));
 			}
-			else if (0 != (interface->flags & ZBX_FLAG_HPMACRO_UPDATE))
+			else if (0 != (interface->flags & ZBX_FLAG_HPINTERFACE_UPDATE))
 			{
 				const char	*d = "";
 
@@ -5968,6 +5968,12 @@ zbx_uint64_t	DBadd_interface(zbx_uint64_t hostid, unsigned char type, unsigned c
 
 	um_handle = zbx_dc_open_user_macros();
 
+	if ((1 == useip && '\0' == *ip) || (0 == useip && '\0' == *dns))
+	{
+		zabbix_log(LOG_LEVEL_WARNING, "Invalid useip(%u) and ip/dns settings, interface skipped", useip);
+		goto out;
+	}
+
 	result = DBselect(
 			"select interfaceid,useip,ip,dns,port,main"
 			" from interface"
