From da3744a28c0c29709c255c9b145ce79bd65111b6 Mon Sep 17 00:00:00 2001 From: oetiker Date: Sun, 24 May 2009 10:31:44 +0000 Subject: [PATCH] * in 1.3: Changed types used in rrd_file_t from off_t to size_t to prevent: warning: comparison between signed and unsigned * Misc other off_t -> size_t changes to prevent signed warning * in 1.3: Added rrd_dump_opt_r declaration to prevent undef warning * Explicit cast to time_t of check in rrd_fetch to prevent signed warning * Added vasprintf path to sprintf_alloc to prevent excessive mallocing * in 1.3: fixed STRERROR_R_CHAR_P undef warning patch by Steven Hartland killing multiplay.co.uk git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.3/program@1808 a5681a0c-68f1-0310-ab6d-d61299d08faa --- configure.ac | 2 +- src/rrd_info.c | 7 ++++++- src/rrd_open.c | 10 +++++----- src/rrd_update.c | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/configure.ac b/configure.ac index ce37e4f..10e08f9 100644 --- a/configure.ac +++ b/configure.ac @@ -188,7 +188,7 @@ AC_C_BIGENDIAN dnl for each function found we get a definition in config.h dnl of the form HAVE_FUNCTION -AC_CHECK_FUNCS(tzset fsync mbstowcs opendir readdir chdir chroot getuid setlocale strerror snprintf vsnprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) +AC_CHECK_FUNCS(tzset fsync mbstowcs opendir readdir chdir chroot getuid setlocale strerror snprintf vsnprintf vasprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday) AC_FUNC_STRERROR_R diff --git a/src/rrd_info.c b/src/rrd_info.c index 83364d2..9ea68d4 100644 --- a/src/rrd_info.c +++ b/src/rrd_info.c @@ -24,9 +24,13 @@ char *sprintf_alloc( char *fmt, ...) { - int maxlen = 1024 + strlen(fmt); char *str = NULL; va_list argp; +#ifdef HAVE_VASPRINTF + va_start( argp, fmt ); + vasprintf( &str, fmt, argp ); +#else + int maxlen = 1024 + strlen(fmt); str = (char*)(malloc(sizeof(char) * (maxlen + 1))); if (str != NULL) { va_start(argp, fmt); @@ -36,6 +40,7 @@ char *sprintf_alloc( vsprintf(str, fmt, argp); #endif } +#endif // HAVE_VASPRINTF va_end(argp); return str; } diff --git a/src/rrd_open.c b/src/rrd_open.c index a1b2670..dba1a01 100644 --- a/src/rrd_open.c +++ b/src/rrd_open.c @@ -310,7 +310,7 @@ rrd_file_t *rrd_open( for (i=0; istat_head->rra_cnt; i++) row_cnt += rrd->rra_def[i].row_cnt; - off_t correct_len = rrd_file->header_len + + size_t correct_len = rrd_file->header_len + sizeof(rrd_value_t) * row_cnt * rrd->stat_head->ds_cnt; if (correct_len > rrd_file->file_len) @@ -389,10 +389,10 @@ void rrd_dontneed( rrd_t *rrd) { #if defined USE_MADVISE || defined HAVE_POSIX_FADVISE - unsigned long dontneed_start; - unsigned long rra_start; - unsigned long active_block; - unsigned long i; + size_t dontneed_start; + size_t rra_start; + size_t active_block; + size_t i; ssize_t _page_size = sysconf(_SC_PAGESIZE); if (rrd_file == NULL) { diff --git a/src/rrd_update.c b/src/rrd_update.c index 36a7e1d..3ee6ce5 100644 --- a/src/rrd_update.c +++ b/src/rrd_update.c @@ -1875,7 +1875,7 @@ static int write_to_rras( scratch_idx = CDP_secondary_val, step_subtract = 2) { - off_t rra_pos_new; + size_t rra_pos_new; #ifdef DEBUG fprintf(stderr, " -- RRA Preseek %ld\n", rrd_file->pos); #endif -- 2.30.2