git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3 1/3] Introduce die_errno() that appends strerror(errno) to die()

From
Thomas Rast <trast@student.ethz.ch>
Date
Jun 9, 2009, 08:22 UTC
Message-ID
<200906091022.31738.trast@student.ethz.ch>
In-Reply-To
<20090608220713.GB29942@sigill.intra.peff.net>
Jeff King wrote:
Show 16 quoted lines
> On Mon, Jun 08, 2009 at 11:02:18PM +0200, Thomas Rast wrote:
> 
> > +void die_errno(const char *fmt, ...)
> > +{
> > +	va_list params;
> > +	char fmt_with_err[1024];
> > +
> > +	snprintf(fmt_with_err, sizeof(fmt_with_err), "%s: %s", fmt, strerror(errno));
> > +
> > +	va_start(params, fmt);
> > +	die_routine(fmt_with_err, params);
> > +	va_end(params);
> > +}
> 
> Aren't you assuming that strerror(errno) has no '%'-signs here, which is
> what kicked off the whole discussion?
True, of course.  Hrm.

So do we go back to v2 (for 1/3) and ask future callers to never use custom formats with die_errno, or should I write a version that doubles the % characters while tacking the error message onto the format?

[It's a pity that it seems impossible to add an extra argument to the va_args...]

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Previous: Jeff KingNext: Jeff King
Message 6 of 14 in “die_errno()”
  1. 0/3 die_errno()Thomas Rast, Jun 8, 2009
  2. 1/3 Introduce die_errno() that appends strerror(errno) to die()Thomas Rast, Jun 8, 2009
  3. 2/3 Convert existing die(..., strerror(errno)) to die_errno()Thomas Rast, Jun 8, 2009
  4. 3/3 Use die_errno() instead of die() when checking syscallsThomas Rast, Jun 8, 2009
  5. Jeff KingJun 8, 2009
  6. Thomas RastJun 9, 2009
  7. Jeff KingJun 9, 2009
  8. Andreas EricssonJun 9, 2009
  9. 0/4 die_errno()Thomas Rast, Jun 27, 2009
  10. 1/4 Introduce die_errno() that appends strerror(errno) to die()Thomas Rast, Jun 27, 2009
  11. 2/4 die_errno(): double % in strerror() output just in caseThomas Rast, Jun 27, 2009
  12. 3/4 Convert existing die(..., strerror(errno)) to die_errno()Thomas Rast, Jun 27, 2009
  13. 4/4 Use die_errno() instead of die() when checking syscallsThomas Rast, Jun 27, 2009
  14. Junio C HamanoJun 27, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.