diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/devfsadm/devfsadm.c | 9 | ||||
-rw-r--r-- | usr/src/lib/libdevinfo/devinfo.c | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/usr/src/cmd/devfsadm/devfsadm.c b/usr/src/cmd/devfsadm/devfsadm.c index ece994cc5d..d37bc70835 100644 --- a/usr/src/cmd/devfsadm/devfsadm.c +++ b/usr/src/cmd/devfsadm/devfsadm.c @@ -4481,10 +4481,11 @@ devfsadm_read_link(di_node_t anynode, char *link, char **devfs_path) /* We *don't* want a stat of the /devices node */ path = NULL; (void) resolve_link(devlink, NULL, NULL, &path, 0); - - /* redirect if alias to current */ - *devfs_path = di_alias2curr(anynode, path); - free(path); + if (path != NULL) { + /* redirect if alias to current */ + *devfs_path = di_alias2curr(anynode, path); + free(path); + } return (*devfs_path ? DEVFSADM_SUCCESS : DEVFSADM_FAILURE); } diff --git a/usr/src/lib/libdevinfo/devinfo.c b/usr/src/lib/libdevinfo/devinfo.c index 1222707c36..68e51960a2 100644 --- a/usr/src/lib/libdevinfo/devinfo.c +++ b/usr/src/lib/libdevinfo/devinfo.c @@ -3710,7 +3710,8 @@ alias_to_curr(di_node_t anynode, char *devfspath, di_node_t *nodep) *nodep = NULL; - assert(anynode != DI_NODE_NIL); + if (anynode == DI_NODE_NIL || devfspath == NULL) + return (NULL); pa = (caddr_t)anynode - DI_NODE(anynode)->self; all = DI_ALL(pa); @@ -3858,8 +3859,12 @@ char * di_alias2curr(di_node_t anynode, char *alias) { di_node_t currnode = DI_NODE_NIL; - char *curr = alias_to_curr(anynode, alias, &currnode); + char *curr; + + if (anynode == DI_NODE_NIL || alias == NULL) + return (NULL); + curr = alias_to_curr(anynode, alias, &currnode); if (curr == NULL && currnode != DI_NODE_NIL) { return (di_devfs_path(currnode)); } else if (curr == NULL) { |