summaryrefslogtreecommitdiffstats
path: root/librpc/rpc/binding.c
diff options
context:
space:
mode:
Diffstat (limited to 'librpc/rpc/binding.c')
-rw-r--r--librpc/rpc/binding.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/librpc/rpc/binding.c b/librpc/rpc/binding.c
index 8f85854008..ee9f13d1b7 100644
--- a/librpc/rpc/binding.c
+++ b/librpc/rpc/binding.c
@@ -541,6 +541,10 @@ static NTSTATUS dcerpc_floor_set_rhs_data(TALLOC_CTX *mem_ctx,
struct epm_floor *epm_floor,
const char *data)
{
+ if (data == NULL) {
+ data = "";
+ }
+
switch (epm_floor->lhs.protocol) {
case EPM_PROTOCOL_TCP:
epm_floor->rhs.tcp.port = atoi(data);
@@ -555,6 +559,9 @@ static NTSTATUS dcerpc_floor_set_rhs_data(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
case EPM_PROTOCOL_IP:
+ if (!is_ipaddress_v4(data)) {
+ data = "0.0.0.0";
+ }
epm_floor->rhs.ip.ipaddr = talloc_strdup(mem_ctx, data);
NT_STATUS_HAVE_NO_MEMORY(epm_floor->rhs.ip.ipaddr);
return NT_STATUS_OK;