We sometimes need the NULL when major==minor==0.
So make sure all callers of map_dev can cope with NULL.
offsets[sd->role] = sd->offset;
if (fdlist[sd->role] < 0) {
fprintf(stderr, Name ": %s: cannot open component %s\n",
- devname, dn);
+ devname, dn?dn:"-unknown-");
goto abort;
}
} else {
offsets[d] = sd->offset;
if (fdlist[d]<0) {
fprintf(stderr, Name ": %s: cannot open component %s\n",
- devname, dn);
+ devname, dn?dn:"-unknown");
goto abort;
}
d++;
minor = strtoul(mp, NULL, 10);
name = map_dev(major, minor, 1);
-
+ if (!name)
+ continue;
d = malloc(sizeof(*d));
d->devname = strdup(name);
d->next = rv;
char *std = NULL, *nonstd=NULL;
int did_check = 0;
- if (major == 0 && minor == 0) {
- if (!create)
+ if (major == 0 && minor == 0)
return NULL;
- else
- return "0:0";
- }
+
retry:
if (!devlist_ready) {
char *dev = "/dev";
char *e;
int fd = -1;
char devname[32];
- int major = strtoul(dev, &e, 0);
+ int major;
int minor;
+
+ if (!dev) return -1;
+
+ major = strtoul(dev, &e, 0);
if (e > dev && *e == ':' && e[1] &&
(minor = strtoul(e+1, &e, 0)) >= 0 &&
*e == 0) {