opendisk seemed to assume that memory was zeroed, so that part and h/c/s were initially zero, but user-level malloc no longer does that. changed to use mallocz. scsi.c did include the memset but i've changed it to use mallocz as well. Reference: /n/sources/patch/applied/libdisk-zero Date: Thu Sep 8 12:02:21 CES 2005 --- /sys/src/libdisk/scsi.c Thu Sep 8 11:57:10 2005 +++ /sys/src/libdisk/scsi.c Thu Sep 8 11:57:07 2005 @@ -308,13 +308,12 @@ if((p = strdup(buf+8)) == nil) goto Error; - s = malloc(sizeof(*s)); + s = mallocz(sizeof(*s), 1); if(s == nil) { Error1: free(p); goto Error; } - memset(s, 0, sizeof(*s)); s->rawfd = rawfd; s->inquire = p; --- /sys/src/libdisk/disk.c Thu Sep 8 11:57:22 2005 +++ /sys/src/libdisk/disk.c Thu Sep 8 11:57:20 2005 @@ -272,7 +272,7 @@ char *p, *q; Disk *d; - d = malloc(sizeof(*d)); + d = mallocz(sizeof(*d), 1); if(d == nil) return nil; @@ -347,4 +347,3 @@ d->type = Tfile; return openfile(d); } -