Print this page
6659 nvlist_free(NULL) is a no-op


3614         picl_nodehdl_t          plafh;
3615         picl_nodehdl_t          nodeh;
3616         nvlist_t                *nvlp;
3617 
3618         if ((earg == NULL) ||
3619             (ptree_get_node_by_path(PLATFORM_PATH, &plafh) != PICL_SUCCESS))
3620                 return;
3621 
3622         if (strcmp(ename, PICLEVENT_DR_AP_STATE_CHANGE) == 0) {
3623                 (void) setup_cpus(plafh);
3624                 if (picldevtree_debug > 1)
3625                         syslog(LOG_INFO, "picldevtree: event handler done\n");
3626                 return;
3627         }
3628 
3629         nvlp = NULL;
3630         if (nvlist_unpack((char *)earg, size, &nvlp, NULL) ||
3631             nvlist_lookup_string(nvlp, PICLEVENTARG_DEVFS_PATH, &devfs_path) ||
3632             strlen(devfs_path) > (PATH_MAX - sizeof (PLATFORM_PATH))) {
3633                 syslog(LOG_INFO, PICL_EVENT_DROPPED, ename);
3634                 if (nvlp)
3635                         nvlist_free(nvlp);
3636                 return;
3637         }
3638 
3639         (void) strlcpy(ptreepath, PLATFORM_PATH, PATH_MAX);
3640         (void) strlcat(ptreepath, devfs_path, PATH_MAX);
3641         (void) strlcpy(dipath, devfs_path, PATH_MAX);
3642         nvlist_free(nvlp);
3643 
3644         if (picldevtree_debug)
3645                 syslog(LOG_INFO, "picldevtree: event handler invoked ename:%s "
3646                     "ptreepath:%s\n", ename, ptreepath);
3647 
3648         if (strcmp(ename, PICLEVENT_CPU_STATE_CHANGE) == 0) {
3649                 goto done;
3650         }
3651         if (strcmp(ename, PICLEVENT_SYSEVENT_DEVICE_ADDED) == 0) {
3652                 di_node_t               devnode;
3653                 char            *strp;
3654                 picl_nodehdl_t  parh;




3614         picl_nodehdl_t          plafh;
3615         picl_nodehdl_t          nodeh;
3616         nvlist_t                *nvlp;
3617 
3618         if ((earg == NULL) ||
3619             (ptree_get_node_by_path(PLATFORM_PATH, &plafh) != PICL_SUCCESS))
3620                 return;
3621 
3622         if (strcmp(ename, PICLEVENT_DR_AP_STATE_CHANGE) == 0) {
3623                 (void) setup_cpus(plafh);
3624                 if (picldevtree_debug > 1)
3625                         syslog(LOG_INFO, "picldevtree: event handler done\n");
3626                 return;
3627         }
3628 
3629         nvlp = NULL;
3630         if (nvlist_unpack((char *)earg, size, &nvlp, NULL) ||
3631             nvlist_lookup_string(nvlp, PICLEVENTARG_DEVFS_PATH, &devfs_path) ||
3632             strlen(devfs_path) > (PATH_MAX - sizeof (PLATFORM_PATH))) {
3633                 syslog(LOG_INFO, PICL_EVENT_DROPPED, ename);

3634                 nvlist_free(nvlp);
3635                 return;
3636         }
3637 
3638         (void) strlcpy(ptreepath, PLATFORM_PATH, PATH_MAX);
3639         (void) strlcat(ptreepath, devfs_path, PATH_MAX);
3640         (void) strlcpy(dipath, devfs_path, PATH_MAX);
3641         nvlist_free(nvlp);
3642 
3643         if (picldevtree_debug)
3644                 syslog(LOG_INFO, "picldevtree: event handler invoked ename:%s "
3645                     "ptreepath:%s\n", ename, ptreepath);
3646 
3647         if (strcmp(ename, PICLEVENT_CPU_STATE_CHANGE) == 0) {
3648                 goto done;
3649         }
3650         if (strcmp(ename, PICLEVENT_SYSEVENT_DEVICE_ADDED) == 0) {
3651                 di_node_t               devnode;
3652                 char            *strp;
3653                 picl_nodehdl_t  parh;