Code

added for for invalid number of ds entries
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 24 Feb 2008 14:30:34 +0000 (14:30 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 24 Feb 2008 14:30:34 +0000 (14:30 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2/program@1299 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_restore.c

index 42c316c0f056d7b9d32e19b508dbec7c0d9e71b6..dc28a9178a51c5623d105ca3d9a20e4a9449e059 100644 (file)
@@ -314,7 +314,10 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){
       eat_tag(&ptr2,"cdp_prep");
       for(i=0;i< (int)rrd->stat_head->ds_cnt;i++)
       {
-      eat_tag(&ptr2,"ds");
+         if (eat_tag(&ptr2, "ds") != 1){
+            rrd_set_error("expected to find %lu <ds> entries in <cdp_prep>",rrd->stat_head->ds_cnt);
+            return -1;
+         }
       /* support to read CDP parameters */
       rra_index = rrd->stat_head->rra_cnt-1; 
       skip(&ptr2);