On Sun, Sep 02, 2012 at 08:36:57PM +0200, Otto Moerbeek wrote: > On Sun, Sep 02, 2012 at 04:18:17PM +0200, rustyBSD wrote: > > > Le 02/09/2012 16:06, rustyBSD a ?crit : > > > [demime 1.01d removed an attachment of type text/x-patch which had a name > > > of scsi.c.diff] > > Mmhhh... > > > > --- scsi.c Sun Sep 2 15:47:45 2012 > > +++ scsi.c Sun Sep 2 16:00:42 2012 > > @@ -223,6 +223,7 @@ > > case 'z': > > { > > char *p = malloc(count + 1); > > + if (!p) err(errno, "malloc failed"); > > Confusing errno and exit code. Just use 1. Or err(1, NULL). The > default message is clear enough. > > > p[count] = 0; > > strncpy(p, (char *)arg, count); > > if (letter == 'z') > > @@ -307,6 +308,8 @@ > > data_fmt = cget(&h, 0); > > > > scsireq->databuf = malloc(count); > > + if (!scsireq->databuf) > > + err(errno, "malloc failed"); > > Same here. > > And I prefer == NULL to !. I know it's equivalent, but reserveig ! for > boolean values makes sense. > > -Otto > > > > > if (data_phase == out) { > > if (strcmp(data_fmt, "-") == 0) { >
It looks like the err() was caused by an incomplete mickey transition from fprint(stderr ...)/exit(n) to err(). And previous exit(n)'s were using errno as the exit value. A quick look shows that there are likely some fprintf()/exit()'s that could still be replaced with errx(). .... Ken