]> source.dussan.org Git - rspamd.git/commitdiff
* Sync log before closing
authorVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 14 Sep 2009 16:02:48 +0000 (20:02 +0400)
committerVsevolod Stakhov <vsevolod@rambler-co.ru>
Mon, 14 Sep 2009 16:02:48 +0000 (20:02 +0400)
* Fix buffer allocation while reading json data

src/json/hashtable.c
src/settings.c
src/util.c

index b3ea0d62ae6164d5f1be7b2b24224e4a79ab3a07..43e851382a53bfc49cf418816d9f661ae7ad932a 100644 (file)
@@ -235,7 +235,7 @@ hashtable_close (hashtable_t * hashtable)
                        hashtable->free_key (pair->key);
                if (hashtable->free_value)
                        hashtable->free_value (pair->value);
-               g_free (pair);
+               g_free (pair); 
        }
 
        g_free (hashtable->buckets);
index 75ba04c764809fe526f6008ec61fbb78903d629f..5ee37d4edbe98368fb1dfbf4b8e24f1d1f7feb07 100644 (file)
@@ -82,7 +82,7 @@ json_read_cb (memory_pool_t *pool, u_char *chunk, size_t len, struct map_cb_data
        free = jb->buflen - off;
 
        if (free < len) {
-               jb->buflen = MAX (free * 2, len * 2);
+               jb->buflen = MAX (jb->buflen * 2, jb->buflen + len * 2);
                jb->buf = g_realloc (jb->buf, jb->buflen);
                jb->pos = jb->buf + off;
        }
index 61cf56725d88586394ade79cb01987f1009ec90e..7d074a1744beacbfa835a0a43e40c00d0b7d58cd 100644 (file)
@@ -681,7 +681,12 @@ close_log (struct config_file *cfg)
                        break;
                case RSPAMD_LOG_FILE:
                        if (cfg->logf != NULL) {
+                               if (fsync (cfg->log_fd) == -1) {
+                                       msg_err ("close_log: error syncing log file: %s", strerror (errno));
+                               }
                                fclose (cfg->logf);
+                               /* XXX: I think this is not needed */
+                               close (cfg->log_fd);
                        }
                        break;
        }