X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=program%2Fsrc%2Frrd_resize.c;h=e7f977c1dc9e1aec0f7e09bc9ed1294d241a1c9e;hb=15e4e245f7a3349b04b9e7ad1eccac971cd25c75;hp=f68051c0e5bf8a73abff52f0a657a2df05e55ab4;hpb=56c4a73a23616ff937e0b884303a7216e9b4187d;p=rrdtool-all.git diff --git a/program/src/rrd_resize.c b/program/src/rrd_resize.c index f68051c0..e7f977c1 100644 --- a/program/src/rrd_resize.c +++ b/program/src/rrd_resize.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.4.5 Copyright by Tobi Oetiker, 1997-2010 + * RRDtool 1.4.6 Copyright by Tobi Oetiker, 1997-2010 ***************************************************************************** * rrd_resize.c Alters size of an RRA ***************************************************************************** @@ -267,9 +267,14 @@ int rrd_resize( /* Move the rest of the CDPs */ while (1) { - if (rrd_read(rrd_file, &buffer, sizeof(rrd_value_t) * 1) <= 0) + ssize_t b_read; + if ((b_read=rrd_read(rrd_file, &buffer, sizeof(rrd_value_t) * 1)) <= 0) break; - rrd_write(rrd_out_file, &buffer, sizeof(rrd_value_t) * 1); + if(rrd_out_file->pos+b_read > rrd_out_file->file_len) { + fprintf(stderr,"WARNING: ignoring last %zu bytes\nWARNING: if you see this message multiple times for a single file you're in trouble\n", b_read); + continue; + } + rrd_write(rrd_out_file, &buffer, b_read); } rrdnew.rra_def[target_rra].row_cnt += modify; rrd_seek(rrd_out_file,