X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_create.c;h=1c2cbd82897e4b9150beb7059ce5031bbc5e0a25;hb=37329a5f991870e8f47c8a52f6dd594fef813de6;hp=f8208b8146a9f60c0fa764f844bc39bb0ea4f0f8;hpb=c0be57bdf5f3fef44227f2e0acf6a7a74c1a7620;p=rrdtool.git diff --git a/src/rrd_create.c b/src/rrd_create.c index f8208b8..1c2cbd8 100644 --- a/src/rrd_create.c +++ b/src/rrd_create.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.2rc8 Copyright by Tobi Oetiker, 1997-2005 + * RRDtool 1.2.6 Copyright by Tobi Oetiker, 1997-2005 ***************************************************************************** * rrd_create.c creates new rrds *****************************************************************************/ @@ -23,6 +23,7 @@ rrd_create(int argc, char **argv) char *parsetime_error = NULL; long long_tmp; int rc; + optind = 0; opterr = 0; /* initialize getopt */ while (1){ static struct option long_options[] = @@ -182,7 +183,8 @@ rrd_create_r(char *filename, return -1; } rrd.stat_head -> ds_cnt++; - } else if (strncmp(argv[i],"RRA:",3)==0){ + } else if (strncmp(argv[i],"RRA:",4)==0){ + char *argvcopy; char *tokptr; size_t old_size = sizeof(rra_def_t)*(rrd.stat_head->rra_cnt); if((rrd.rra_def = rrd_realloc(rrd.rra_def, @@ -193,8 +195,9 @@ rrd_create_r(char *filename, return(-1); } memset(&rrd.rra_def[rrd.stat_head->rra_cnt], 0, sizeof(rra_def_t)); - - token = strtok_r(&argv[i][4],":", &tokptr); + + argvcopy = strdup(argv[i]); + token = strtok_r(&argvcopy[4],":", &tokptr); token_idx = error_flag = 0; while (token != NULL) { @@ -369,12 +372,14 @@ rrd_create_r(char *filename, if (rrd_test_error()) { /* all errors are unrecoverable */ + free(argvcopy); rrd_free(&rrd); return (-1); } token = strtok_r(NULL,":", &tokptr); token_idx++; } /* end while */ + free(argvcopy); #ifdef DEBUG fprintf(stderr,"Creating RRA CF: %s, dep idx %lu, current idx %lu\n", rrd.rra_def[rrd.stat_head->rra_cnt].cf_nam,