Skip to content

Commit

Permalink
Check the result of localtime().
Browse files Browse the repository at this point in the history
Unlikely to fail, but it squelches CID 1398219.

Change-Id: Ibdabd2d71bdc2c09549f27f1ffe528005383ee3e
Reviewed-on: https://code.wireshark.org/review/21178
Reviewed-by: Guy Harris <guy@alum.mit.edu>
  • Loading branch information
guyharris committed Apr 18, 2017
1 parent 7207050 commit 6a049dd
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions ringbuffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ static int ringbuf_open_file(rb_file *rfile, int *err)
char filenum[5+1];
char timestr[14+1];
time_t current_time;
struct tm *tm;

if (rfile->name != NULL) {
if (rb_data.unlimited == FALSE) {
Expand All @@ -102,13 +103,11 @@ 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));
tm = localtime(&current_time);
if (tm != NULL)
strftime(timestr, sizeof(timestr), "%Y%m%d%H%M%S", tm);
else
g_strlcpy(timestr, "196912312359", sizeof(timestr)); /* second before the Epoch */
rfile->name = g_strconcat(rb_data.fprefix, "_", filenum, "_", timestr,
rb_data.fsuffix, NULL);

Expand Down

0 comments on commit 6a049dd

Please sign in to comment.