[asterisk-commits] rmudgett: branch 12 r397902 - in /branches/12: funcs/ main/ main/stdtime/
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Aug 28 18:14:58 CDT 2013
Author: rmudgett
Date: Wed Aug 28 18:14:57 2013
New Revision: 397902
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397902
Log:
Fix some uninitialized buffers for CDR handling valgrind found.
* Made ast_strftime_locale() ensure that the output buffer is initialized.
The std library strftime() returns 0 and does not touch the buffer if it
has an error. However, the function can also return 0 without an error.
Modified:
branches/12/funcs/func_cdr.c
branches/12/main/cdr.c
branches/12/main/stdtime/localtime.c
Modified: branches/12/funcs/func_cdr.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/funcs/func_cdr.c?view=diff&rev=397902&r1=397901&r2=397902
==============================================================================
--- branches/12/funcs/func_cdr.c (original)
+++ branches/12/funcs/func_cdr.c Wed Aug 28 18:14:57 2013
@@ -213,6 +213,8 @@
AST_APP_ARG(options);
);
+ buf[0] = '\0';/* Ensure the buffer is initialized. */
+
if (!chan) {
return -1;
}
Modified: branches/12/main/cdr.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/cdr.c?view=diff&rev=397902&r1=397901&r2=397902
==============================================================================
--- branches/12/main/cdr.c (original)
+++ branches/12/main/cdr.c Wed Aug 28 18:14:57 2013
@@ -2764,6 +2764,7 @@
if (fmt == NULL) { /* raw mode */
snprintf(buf, bufsize, "%ld.%06ld", (long)when.tv_sec, (long)when.tv_usec);
} else {
+ buf[0] = '\0';/* Ensure the buffer is initialized. */
if (when.tv_sec) {
struct ast_tm tm;
@@ -3083,8 +3084,6 @@
}
for (i = 0; cdr_readonly_vars[i]; i++) {
- /* null out the workspace, because the cdr_get_tv() won't write anything if time is NULL, so you get old vals */
- workspace[0] = 0;
if (cdr_object_format_property(it_cdr, cdr_readonly_vars[i], workspace, sizeof(workspace))) {
/* Unhandled read-only CDR variable. */
ast_assert(0);
@@ -3638,7 +3637,7 @@
struct ao2_iterator it_cdrs;
struct cdr_object *cdr;
char start_time_buffer[64];
- char answer_time_buffer[64] = "\0";
+ char answer_time_buffer[64];
char end_time_buffer[64];
#define TITLE_STRING "%-25.25s %-25.25s %-15.15s %-8.8s %-8.8s %-8.8s %-8.8s %-8.8s\n"
@@ -3702,8 +3701,8 @@
struct cdr_object *it_cdr;
char clid[64];
char start_time_buffer[64];
- char answer_time_buffer[64] = "\0";
- char end_time_buffer[64] = "\0";
+ char answer_time_buffer[64];
+ char end_time_buffer[64];
const char *channel_name = a->argv[3];
RAII_VAR(struct cdr_object *, cdr, NULL, ao2_cleanup);
Modified: branches/12/main/stdtime/localtime.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/stdtime/localtime.c?view=diff&rev=397902&r1=397901&r2=397902
==============================================================================
--- branches/12/main/stdtime/localtime.c (original)
+++ branches/12/main/stdtime/localtime.c Wed Aug 28 18:14:57 2013
@@ -2304,6 +2304,7 @@
long fraction;
const char *prevlocale;
+ buf[0] = '\0';/* Ensure the buffer is initialized. */
if (!format) {
return -1;
}
More information about the asterisk-commits
mailing list