X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_resize.c;h=11efcdaac7617f3fffa4cc768c48be29dfb73b60;hp=f64615cf62bfb39e0927de16e8e23cd35528701b;hb=009ac7ac9dde1ba7c450b230b9118cff2cedc9f6;hpb=3b98cbd3871a5f445c56c14f73805a14ea31dd7a diff --git a/src/rrd_resize.c b/src/rrd_resize.c index f64615c..11efcda 100644 --- a/src/rrd_resize.c +++ b/src/rrd_resize.c @@ -55,7 +55,7 @@ int rrd_resize( modify = -modify; - rrd_file = rrd_open(infilename, &rrdold, RRD_READWRITE); + rrd_file = rrd_open(infilename, &rrdold, RRD_READWRITE | RRD_COPY); if (rrd_file == NULL) { rrd_set_error("could not open RRD"); return (-1); @@ -111,15 +111,14 @@ int rrd_resize( case 1: rrdold.stat_head->version[3] = '3'; break; - default:{ + default: rrd_set_error("Do not know how to handle RRD version %s", rrdold.stat_head->version); + rrd_close(rrd_file); rrd_free(&rrdold); - close(rrd_file->fd); return (-1); + break; } - } - /* XXX: Error checking? */ rrd_write(rrd_out_file, rrdnew.stat_head, sizeof(stat_head_t) * 1); @@ -231,8 +230,13 @@ int rrd_resize( rrd_write(rrd_out_file, rrdnew.rra_ptr, sizeof(rra_ptr_t) * rrdnew.stat_head->rra_cnt); - close(rrd_out_file->fd); rrd_free(&rrdold); close(rrd_file->fd); + rrd_close(rrd_file); + + rrd_free(&rrdnew); + close(rrd_out_file->fd); + rrd_close(rrd_out_file); + return (0); }