fixed a (maybe) error in the database write function (mod-watchdog.c)
authorpk910 <philipp@zoelle1.de>
Sat, 23 Jul 2011 06:12:00 +0000 (08:12 +0200)
committerpk910 <philipp@zoelle1.de>
Sat, 23 Jul 2011 15:17:23 +0000 (17:17 +0200)
src/mod-watchdog.c

index 65935bd8105bd1619835171b366d2014681516b1..4f8f27b04a3182c3e6997504dd7a319e821271a7 100644 (file)
@@ -547,13 +547,15 @@ watchdog_saxdb_write(struct saxdb_context *ctx)
         saxdb_start_record(ctx, KEY_BADWORDS, 1);
         for (it = dict_first(shitlist); it; it = iter_next(it)) {
             struct badword *badword = iter_data(it);
-            saxdb_start_record(ctx, iter_key(it), 0);
-            
-            saxdb_write_string(ctx, KEY_BADWORD_MASK, badword->badword_mask);
-            saxdb_write_int(ctx, KEY_BADWORD_TRIGGERED, badword->triggered);
-            saxdb_write_int(ctx, KEY_BADWORD_ACTION, badword->action);
-            
-            saxdb_end_record(ctx);
+            if(badword && badword->badword_mask) {
+                saxdb_start_record(ctx, iter_key(it), 0);
+                
+                saxdb_write_string(ctx, KEY_BADWORD_MASK, badword->badword_mask);
+                saxdb_write_int(ctx, KEY_BADWORD_TRIGGERED, badword->triggered);
+                saxdb_write_int(ctx, KEY_BADWORD_ACTION, badword->action);
+                
+                saxdb_end_record(ctx);
+            }
         }
         saxdb_end_record(ctx);
     }
@@ -562,9 +564,11 @@ watchdog_saxdb_write(struct saxdb_context *ctx)
         saxdb_start_record(ctx, KEY_CHANNELS, 1);
         for (it = dict_first(chanlist); it; it = iter_next(it)) {
             struct watchdog_channel *wc = iter_data(it);
-            saxdb_start_record(ctx, wc->channel->name, 0);
-            //anything else?
-            saxdb_end_record(ctx);
+            if(wc && wc->channel && wc->channel->name) {
+                saxdb_start_record(ctx, wc->channel->name, 0);
+                //anything else?
+                saxdb_end_record(ctx);
+            }
         }
         saxdb_end_record(ctx);
     }