From: oetiker Date: Sat, 16 Dec 2006 16:13:53 +0000 (+0000) Subject: replace malloc/strncpy by strdup X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=commitdiff_plain;h=b244c918dd034a4951e2318140b1d4ef132b6657 replace malloc/strncpy by strdup add \0 to the end of several strncpy strings add missing free fix error string rendering :... makes no sense here git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2/program@937 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/src/rrd_update.c b/src/rrd_update.c index 9d7d251..0f32121 100644 --- a/src/rrd_update.c +++ b/src/rrd_update.c @@ -266,6 +266,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, unsigned long rrd_filesize; #endif + rpnstack_init(&rpnstack); /* need at least 1 arguments: data. */ @@ -427,7 +428,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, #endif /* loop through the arguments. */ for(arg_i=0; arg_ids_cnt;ii++) updvals[ii] = "U"; - strcpy(stepper,argv[arg_i]); updvals[0]=stepper; /* separate all ds elements; first must be examined separately due to alternate time syntax */ @@ -461,7 +462,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, *p = '\0'; stepper = p+1; } else { - rrd_set_error("expected timestamp not found in data source from %s:...", + rrd_set_error("expected timestamp not found in data source from %s", argv[arg_i]); free(step_start); break; @@ -480,7 +481,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, } if (ii != tmpl_cnt-1) { - rrd_set_error("expected %lu data source readings (got %lu) from %s:...", + rrd_set_error("expected %lu data source readings (got %lu) from %s", tmpl_cnt-1, ii, argv[arg_i]); free(step_start); break; @@ -592,6 +593,7 @@ _rrd_update(char *filename, char *tmplt, int argc, char **argv, if(rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt < interval && ( dst_idx == DST_COUNTER || dst_idx == DST_DERIVE)){ strncpy(rrd.pdp_prep[i].last_ds,"U",LAST_DS_LEN-1); + rrd.pdp_prep[i].last_ds[LAST_DS_LEN-1]='\0'; } /* NOTE: DST_CDEF should never enter this if block, because