X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_update.c;h=a06b404e9d3ef26c545959bd469b8652e22834bb;hb=0fdd2b797ac6e498415c1910110806f37ab9bf1c;hp=83ef7064347ab615f1b09950f27b94fb18f28f4b;hpb=2c2a2654452de47d1504e7a5b6e4e63d0abb860e;p=rrdtool.git diff --git a/src/rrd_update.c b/src/rrd_update.c index 83ef706..a06b404 100644 --- a/src/rrd_update.c +++ b/src/rrd_update.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.4.2 Copyright by Tobi Oetiker, 1997-2009 + * RRDtool 1.4.3 Copyright by Tobi Oetiker, 1997-2010 * Copyright by Florian Forster, 2008 ***************************************************************************** * rrd_update.c RRD Update Function @@ -477,6 +477,16 @@ int rrd_update_r( return _rrd_update(filename, tmplt, argc, argv, NULL); } +int rrd_update_v_r( + const char *filename, + const char *tmplt, + int argc, + const char **argv, + rrd_info_t * pcdp_summary) +{ + return _rrd_update(filename, tmplt, argc, argv, pcdp_summary); +} + int _rrd_update( const char *filename, const char *tmplt, @@ -1354,6 +1364,10 @@ static int process_pdp_st( rpnp = rpn_expand((rpn_cdefds_t *) &(rrd->ds_def[ds_idx].par[DS_cdef])); + if(rpnp == NULL) { + rpnstack_free(&rpnstack); + return -1; + } /* substitute data values for OP_VARIABLE nodes */ for (i = 0; rpnp[i].op != OP_END; i++) { if (rpnp[i].op == OP_VARIABLE) { @@ -1367,6 +1381,7 @@ static int process_pdp_st( rpnstack_free(&rpnstack); return -1; } + free(rpnp); } /* make pdp_prep ready for the next run */ @@ -1543,7 +1558,7 @@ static int update_cdp_prep( if (elapsed_pdp_st > 2) { reset_cdp(rrd, elapsed_pdp_st, pdp_temp, last_seasonal_coef, seasonal_coef, rra_idx, ds_idx, cdp_idx, - current_cf); + (enum cf_en)current_cf); } }