From c985e172447301fefddd2d30ac4cb0cac2281d0c Mon Sep 17 00:00:00 2001 From: Igor Kozhukhov Date: Tue, 6 Sep 2016 23:54:34 +0300 Subject: 7359 NULL pointer at strcmp() in ipmgmt_nvlist_match() Reviewed by: Yuri Pankov Reviewed by: Andy Stormont Approved by: Robert Mustacchi --- usr/src/cmd/cmd-inet/lib/ipmgmtd/ipmgmt_persist.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'usr/src') diff --git a/usr/src/cmd/cmd-inet/lib/ipmgmtd/ipmgmt_persist.c b/usr/src/cmd/cmd-inet/lib/ipmgmtd/ipmgmt_persist.c index 73a0c621d0..09fe54e5ac 100644 --- a/usr/src/cmd/cmd-inet/lib/ipmgmtd/ipmgmt_persist.c +++ b/usr/src/cmd/cmd-inet/lib/ipmgmtd/ipmgmt_persist.c @@ -21,6 +21,7 @@ /* * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2016 Argo Technologie SA. */ /* @@ -111,19 +112,22 @@ ipmgmt_nvlist_match(nvlist_t *db_nvl, const char *proto, const char *ifname, if ((proto == NULL && db_proto != NULL) || (proto != NULL && db_proto == NULL) || - strcmp(proto, db_proto) != 0) { + (proto != NULL && db_proto != NULL && + strcmp(proto, db_proto) != 0)) { /* no intersection - different protocols. */ return (B_FALSE); } if ((ifname == NULL && db_ifname != NULL) || (ifname != NULL && db_ifname == NULL) || - strcmp(ifname, db_ifname) != 0) { + (ifname != NULL && db_ifname != NULL && + strcmp(ifname, db_ifname) != 0)) { /* no intersection - different interfaces. */ return (B_FALSE); } if ((aobjname == NULL && db_aobjname != NULL) || (aobjname != NULL && db_aobjname == NULL) || - strcmp(aobjname, db_aobjname) != 0) { + (aobjname != NULL && db_aobjname != NULL && + strcmp(aobjname, db_aobjname) != 0)) { /* no intersection - different address objects */ return (B_FALSE); } -- cgit v1.2.3