Michael McConville wrote:
> Nicholas Marriott wrote:
> > Looks good, ok nicm
> 
> Reviewing now, generally looks good.
> 
> A few things:
> 
> I don't understand the motive for all the err() -> errx() and fatal() ->
> fatalx() changes. If I came across these, I probably would have
> suggested the reverse. err(1, "xstrdup") is a lot cleaner than a long
> custom error message, IMO. I don't know how much value is in showing the
> size of the failed allocation, either - thoughts on that? I'm fine with
> a little less uniformity for simplicity's sake.

Showing the size lets you determine if something has gone terribly
wrong (can't allocate 3840284093284092840928402 bytes) versus a more mundane
out of memory condition. Allocation failure is usually the final symptom of
some other disease.

But agreed that always printing "out of memory" seems like a step backwards
from printing what errno tells us. It's discarding information.

> Also, I'm seeing a couple "could not allocate memory" messages added to
> *snprintf() functions. They write to a supplied buffer, no?

Good catch.

> > > + i = vsnprintf(str, len, fmt, ap);
> > >   va_end(ap);
> > >  
> > > - if (i == -1 || i >= (int)size)
> > > -         fatal("xsnprintf: overflow");
> > > + if (i < 0 || i >= (int)len)
> > > +         fatal("xsnprintf: could not allocate memory");

This change (among a few others) is wrong.

Reply via email to