Page MenuHomeFreeBSD

D12407.id.diff
No OneTemporary

D12407.id.diff

Index: head/sys/compat/linsysfs/linsysfs.c
===================================================================
--- head/sys/compat/linsysfs/linsysfs.c
+++ head/sys/compat/linsysfs/linsysfs.c
@@ -252,7 +252,7 @@
{
struct scsi_host_queue *scsi_host;
struct pfs_node *sub_dir, *cur_file, *cur_chardev;
- int i, nchildren;
+ int i, nchildren, error;
device_t *children, parent;
devclass_t devclass;
const char *name = NULL;
@@ -353,13 +353,15 @@
}
}
- dinfo = device_get_ivars(parent);
- if (dinfo != NULL && dinfo->cfg.baseclass == PCIC_DISPLAY) {
- devclass = device_get_devclass(dev);
- if (devclass != NULL)
- name = devclass_get_name(devclass);
- if (name != NULL && strcmp(name, DRMN_DEV) == 0 &&
- device_get_unit(dev) >= 0) {
+ devclass = device_get_devclass(dev);
+ if (devclass != NULL)
+ name = devclass_get_name(devclass);
+ else
+ name = NULL;
+ if (name != NULL && strcmp(name, DRMN_DEV) == 0 &&
+ device_get_unit(dev) >= 0) {
+ dinfo = device_get_ivars(parent);
+ if (dinfo != NULL && dinfo->cfg.baseclass == PCIC_DISPLAY) {
sprintf(chardevname, "226:%d",
device_get_unit(dev));
cur_chardev = pfs_create_dir(chardev,
@@ -376,10 +378,13 @@
}
}
- device_get_children(dev, &children, &nchildren);
- for (i = 0; i < nchildren; i++) {
- if (children[i])
- linsysfs_run_bus(children[i], dir, scsi, chardev, new_path, prefix);
+ error = device_get_children(dev, &children, &nchildren);
+ if (error == 0) {
+ for (i = 0; i < nchildren; i++)
+ if (children[i])
+ linsysfs_run_bus(children[i], dir, scsi,
+ chardev, new_path, prefix);
+ free(children, M_TEMP);
}
if (new_path != path)
free(new_path, M_TEMP);

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 9, 11:38 PM (5 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31178522
Default Alt Text
D12407.id.diff (1 KB)

Event Timeline