path: root/ringbuffer.c
diff options
authorGuy Harris <guy@alum.mit.edu>2016-10-21 19:18:15 -0700
committerGuy Harris <guy@alum.mit.edu>2016-10-22 02:27:32 +0000
commit10ca4c7527122efde0300205deaa6c0143f07219 (patch)
tree5352128043afff3b586c4a314ab2d240aec36f6a /ringbuffer.c
parent49cf42c571f3f94632957371ccd99533e71764ff (diff)
More checks for localtime() and gmtime() returning NULL.
And some comments in the case where we're converting the result of time() - if your machine's idea of time predates January 1, 1970, 00:00:00 UTC, it'll crash on Windows, but that's not a case where a *file* can cause the problem due either to a bad file time stamp or bad time stamps in the file. Change-Id: I837a438e4b875dd8c4f3ec2137df7a16ee4e9498 Reviewed-on: https://code.wireshark.org/review/18369 Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'ringbuffer.c')
1 files changed, 6 insertions, 0 deletions
diff --git a/ringbuffer.c b/ringbuffer.c
index 7f0f67d5e7..099e8c4783 100644
--- a/ringbuffer.c
+++ b/ringbuffer.c
@@ -102,6 +102,12 @@ static int ringbuf_open_file(rb_file *rfile, int *err)
current_time = time(NULL);
g_snprintf(filenum, sizeof(filenum), "%05u", (rb_data.curr_file_num + 1) % RINGBUFFER_MAX_NUM_FILES);
+ /*
+ * XXX - We trust Windows not to return a time before the Epoch, so
+ * localtime() doesn't return a null pointer. localtime() can probably
+ * handle pre-Epoch times on most UN*X systems, and we trust them not
+ * to return a time before the Epoch in any case.
+ */
strftime(timestr, sizeof(timestr), "%Y%m%d%H%M%S", localtime(&current_time));
rfile->name = g_strconcat(rb_data.fprefix, "_", filenum, "_", timestr,
rb_data.fsuffix, NULL);