[PATCH] lib/util: Add optional format argument to timeval_str_buf()

Martin Schwenke martin at meltin.net
Fri Oct 10 01:14:13 MDT 2014


On Thu, 9 Oct 2014 20:35:22 +0200, Volker Lendecke
<Volker.Lendecke at SerNet.DE> wrote:

> On Thu, Oct 09, 2014 at 09:05:40PM +1100, Martin Schwenke wrote:
> > > Hmm. Right now the timeval_str_buf function can be assumed to never fail,
> > > because timeval_buf is large enough. If we now add a format argument,
> > > it could easily overflow unnoticed. Is that what we want?
> > 
> > No.  Thanks for picking that up.  You'd have to be trying hard to
> > overflow 128 byte of time string... but my code should have been
> > better... :-)
> > 
> > I'd be happy if it truncated instead of overflowing.  However,
> > strftime(3) doesn't provide such an option - it returns 0 and output
> > is undefined on potential overflow.
> 
> What is your actual use case of this?

RFC5424-compatible timestamps:

  http://www.ietf.org/rfc/rfc5424.txt

This is to support syslog via UDP logging instead of the current CTDB
log daemon.

Amitay and I came up a better way of doing this.  2 patches.  First
changes timeval_str_buf() to use snprintf() instead of strftime(),
since the latter is unnecessary - we're not using arbitrary formats
anyway.  2nd adds an rfc5424 bool argument to timeval_str_buf() to allow
it to produce the alternative timestamp format.  The changes are safe,
since there's no arbitrary format, so no overflow...  :-)

Code is written, just need to test.  Will post patches soon...

peace & happiness,
martin


More information about the samba-technical mailing list